__eq__ python用法
时间: 2023-10-31 07:05:09 浏览: 170
__eq__ 是 Python 中的一个特殊方法,用于比较两个对象是否相等。当我们使用 == 运算符比较两个对象时,实际上是调用了对象的 __eq__ 方法。默认情况下,Python 会比较两个对象的内存地址是否相等,也就是它们是否是同一个对象。如果我们想要比较两个对象的属性是否相等,就需要重写 __eq__ 方法。
下面是一个简单的例子:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __eq__(self, other):
if isinstance(other, Person):
return self.name == other.name and self.age == other.age
return False
p1 = Person('Alice', 25)
p2 = Person('Bob', 30)
p3 = Person('Alice', 25)
print(p1 == p2) # False
print(p1 == p3) # True
```
在这个例子中,我们定义了一个 Person 类,并重写了它的 __eq__ 方法。在 __eq__ 方法中,我们首先判断 other 是否是 Person 类型的对象,如果是,则比较两个对象的 name 和 age 属性是否相等,如果都相等,则返回 True,否则返回 False。
阅读全文