类可以截获Python运算符
运算符重载就是让用类写成的对象,可以截获并响应应用在内置类型上的运算:加法、切片、打印和点号运算等。
以双下划线命名的方法(__X__)是特殊钩子:
例如,如果实例对象继承了__add__方法,当对象出现在+表达式内时,该方法就会调用。该方法的返回值就变成相应表达式的结果。
__init__ 方法,也成为构造函数方法,它是用于初始化对象的状态的。
__init__ 和 self 参数是了解python的OOP程序代码的关键之一。
调用超类构造函数:
class Super: def __init__(self, x): .... class Sub(Super): def __init__(self, x, y): Super.__init__(self, x) .... I = Sub(1,2)
常见的运算符重载方法
__init__ __del__ __add__ __or__ __repr__ __str__ __call__ __getattr__ __setattr__ __delattr__ __getattribute__ __getitem__ __setitem__ __delitem__ __len__ __bool__ __lt__ __gt__ __le__ __ge__ __eq__ __ne__ __radd__ __iadd__ __iter__ __next__ __contains__ __index__ __enter__ __exit__ __get__ __set__ __delete__ __delete__ __new__
object
def C(object): def getage(self): print 'xxx' dir(C)