Python ==运算符重载

来源:互联网 发布:aes java代码 编辑:程序博客网 时间:2024/04/30 08:44

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  







0 0