__eq__
-
触发条件 : 在两个对象进行
==
比较值的时候触发__eq__()
的执行, 在该方法内部可以自定义比较规则print(12 == [1,2,3]) # False print("w" == (2,3,5,)) # False l1 = [1,2,3] l2 = [1,2,3] print(l1 == l2) # True (只比较值, 不比较ID)
-
自定义规则示例
class Str: def __init__(self,name): self.name = name def __eq__(self, other): # self(本身对象),other(另一个对象) if self.name == other.name: # 只要名字相同,我就认为相同 return True else: return False p1 = Str("淘小欣") p2 = Str("淘小欣") p3 = Str("码云") print(p1 == p2) # True print(p1 == p3) # False