在Python中,__eq__是一个魔术方法,用于比较两个对象是否相等。当我们使用 == 操作符比较两个对象时,实际上会调用左侧对象的 eq 方法,并将右侧对象作为参数传递给它。如果这个方法返回 True,那么我们就认为这两个对象相等。
下面是一个简单的例子,展示了如何在自定义类中实现 eq 方法:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __eq__(self, other):
return self.x == other.x and self.y == other.y
p1 = Point(1, 2)
p2 = Point(1, 2)
print(p1 == p2) # 输出 True
在这个例子中,当我们使用 == 操作符比较两个 Point 对象时,实际上是在调用 __eq __ 方法,然后将另一个 Point 对象(other, 即p2)作为参数传递给 self(即p1)。因此,在 __eq __ 方法中,我们可以通过 other 来访问另一个 Point 对象的属性,从而进行比较并返回相应的布尔值。