Python ==运算符重载

本文探讨了Python中is与==运算符的区别,通过实例演示了它们如何用于对象比较,并介绍了如何通过重载__eq__方法来自定义对象的比较方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Pythonis、==是两个运算符,对对象进行比较,分别对IDTYPEValue进行比较。

"is"比较IDTYPEValue三维,而"=="仅比较value

实验发现其实is==仅仅是比较一些简单的基础变量。

class Test(object):
    def __init__(self):
        self.value='test'
测试代码:

if __name__ == '__main__':
    u1=Test()
    u2=Test()
    if u1 is u2:
        print 'is',True
    else:
        print 'is',False
    if u1 == u2:
        print '==',True
    else:
        print '==',False
结果如下:

step 2:重载“==”运算符:

    def __eq__(self,y):
        if self.value ==y.value:
            return True
        else:
            return False
测试结果如下:

小结:Python中可以重载的运算符如下:

Method       Overloads       Call for

__init__      构造函数       X=Class()

__del__       析构函数       对象销毁

__add__       +             X+Y,X+=Y

__or__       |             X|Y,X|=Y

__repr__      打印转换       print Xrepr(X)

__str__       打印转换       print Xstr(X)

__call__      调用函数       X()

__getattr_   限制          X.undefine

__setattr__    取值          X.any=value

__getitem__    索引          X[key]      

__len__       长度          len(X)

__cmp__       比较          X==Y,X<Y

__lt__       小于          X<Y

__eq__       等于          X=Y

__radd__       Right-Side +        +X

__iadd__       +=               X+=Y

__iter__      迭代           For In  







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值