我已经定义了一个类:
class User:
Name = ""
Age = ""
Gender = ""
def __init__(self, var1, var2, var3):
self.Name = var1
self.Age = var2
self.Gender = var3
def __hash__(self):
return hash(self.Name)
Run Code Online (Sandbox Code Playgroud)
现在,当我创建两个相同的对象:
User1 = User("Ted", "43", "M")
User2 = User("Ted", "43", "M")
Run Code Online (Sandbox Code Playgroud)
并试图比较它们:
print(User1 == User2)
Run Code Online (Sandbox Code Playgroud)
它回来了False吗?
您需要覆盖该__eq__方法:
def __eq__(self, other):
if isinstance(other, User):
return self.Name == other.Name and \
self.Age == other.Age and \
self.Gender == other.Gender
return NotImplemented
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |