python中__eq__()
时间: 2023-10-30 09:09:32 浏览: 175
在Python中,`__eq__()`是一个特殊的方法,用于比较两个对象是否相等。它是在自定义类中实现的,通过重写该方法可以定义对象相等的规则。`__eq__()`方法默认接受两个参数,`self`表示当前对象,`other`表示需要进行比较的其他对象。在`__eq__()`方法中,可以根据实际需求定义对象相等的条件,如果满足条件,返回`True`,否则返回`False`。
下面是一个示例代码,展示了如何使用`__eq__()`方法来判断两个对象是否相等:
```
class Item:
def __init__(self, name, weight):
self.name = name
self.weight = weight
def __eq__(self, other):
if type(other) == type(self) and other.name == self.name and other.weight == self.weight:
return True
else:
return False
cat_1 = Item('Cat', 5)
cat_2 = Item('Cat', 5)
print(cat_1.__eq__(cat_2)) # 输出:True
print(cat_1 == cat_2) # 输出:True
```
在上面的代码中,我们创建了一个名为`Item`的类,它有两个属性`name`和`weight`。通过重写`__eq__()`方法,我们定义了只有当两个对象的`name`和`weight`属性都相等时才认为它们是相等的。这样,在比较两个`Item`对象时,可以使用`==`运算符或调用`__eq__()`方法来判断它们是否相等。
阅读全文