内置方法进阶 __eq__

__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
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值