Python运算符重载__类常用的内置方法
?
?
http://xukaizijian.blog.163.com/blog/static/170433119201111894228877/
?
http://blog.csdn.net/adupt/archive/2009/09/14/4551910.aspx
?
?
?
在Python语言中提供了类似于C++的运算符重在功能:
一下为Python运算符重在调用的方法如下:
Method??? ??? Overloads??? ??? Call for
__init__??? ??? 构造函数??? ??? X=Class()
__del__??? ??? 析构函数??? ??? 对象销毁
__add__??? ??? +??? ??? ??? ??? X+Y,X+=Y
__or__??? ??? |??? ??? ??? ??? X|Y,X|=Y
__repr__??? ??? 打印转换??? ??? print X,repr(X)
__str__??? ??? 打印转换??? ??? print X,str(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
?
?内置方法 ?说明?__init__(self,...)?初始化对象,在创建新对象时调用?__del__(self)?释放对象,在对象被删除之前调用?__new__(cls,*args,**kwd)?实例的生成操作?__str__(self)?在使用print语句时被调用?__getitem__(self,key)?获取序列的索引key对应的值,等价于seq[key]?__len__(self)?在调用内联函数len()时被调用?__cmp__(stc,dst)?比较两个对象src和dst?__getattr__(s,name)?获取属性的值?__setattr__(s,name,value)?设置属性的值?__delattr__(s,name)?删除name属性?__getattribute__()?__getattribute__()功能与__getattr__()类似?__gt__(self,other)?判断self对象是否大于other对象?__lt__(slef,other)?判断self对象是否小于other对象?__ge__(slef,other)?判断self对象是否大于或者等于other对象?__le__(slef,other)?判断self对象是否小于或者等于other对象?__eq__(slef,other)?判断self对象是否等于other对象?__call__(self,*args)?把实例对象作为函数调用