__eq__ 当判断两个对象的值是否相等时,触发此方法
class Staff:
def __init__(self, name, sex):
self.name = name
self.sex = sex
def __eq__(self, other): # 定义内置方法
return self.__dict__ == other.__dict__ # 判断的是两对象空间的属性值是否相等
laura = Staff('laura', 'female')
laura2 = Staff('laura', 'female')
print(laura == laura2) # True
所以为什么可以判断两不在一个地址的列表的是否相等,因为在list类中有__eq__()这个方法
class list(object):
def __eq__(self, *args, **kwargs): # 内置方法可被触发,而其他普通方法时要调用的。
""" Return self==value. """ # 返回一个布尔值,自己的值是否等于给定的值。
pass
l1 = [1, 2, 3, 4]
l2 = [1, 2, 3, 4]
print(id(l1), id(l2)) # 2787816596040 2787816596104
print(l1 == l2) # True
print(l1 is l2) # False
内置方法进阶 __eq__
猜你喜欢
转载自blog.csdn.net/weixin_42233629/article/details/82353806
今日推荐
周排行