类可以截获Python运算符:
的兼容性。
常见运算符重载方法:
方法 重载 调用
__init__ 构造器方法 对象建立:X = Class()
__del__ 析构方法 对象回收
__add__ 运算符+ X+Y, X += Y
__or__ 运算符|(位OR) X|Y, X|=Y
__repr__,__str__ 打印,转换 print X, repr(X), str(X)
__call__ 函数调用 X()
__getattr__ 点号运算 X.undefined
__setattr__ 属性赋值 X.any = value
__getitem__ 索引运算 X[key], 没__iter__时的for
循环和其他迭代器
__setitem__ 索引赋值 X[key] = value
__len__ 长度 len(X), 真值测试
__cmp__ 比较 X == Y, X
__lt__ 特定的比较 X < Y(or else __cmp__)
__eq__ 特定的比较 X == Y(or else __cmp__)
__radd__ 左侧加法 + Noninstance + X
__iadd__ 实地(增强的)加法 X += Y (or else __add__)
__iter__ 迭代环境 用于循环,测试、理解、列表、
映射及其他
·以双下划线命名的方法(__X__)是特殊钩子。
间,定义了固定不变的映射关系。
·当实例出现在内置运算时,这类方法会自动调用。
成相应表达式的结果。
·类可覆盖多数内置类型运算。
对象建立这类基本运算也包括在内。
·运算符覆盖方法没有默认值,而且也不需要。
达式就会引发异常。
·运算符可让类与Python的对象模型相集成。
的兼容性。
常见运算符重载方法:
方法 重载 调用
__init__ 构造器方法 对象建立:X = Class()
__del__ 析构方法 对象回收
__add__ 运算符+ X+Y, X += Y
__or__ 运算符|(位OR) X|Y, X|=Y
__repr__,__str__ 打印,转换 print X, repr(X), str(X)
__call__ 函数调用 X()
__getattr__ 点号运算 X.undefined
__setattr__ 属性赋值 X.any = value
__getitem__ 索引运算 X[key], 没__iter__时的for
循环和其他迭代器
__setitem__ 索引赋值 X[key] = value
__len__ 长度 len(X), 真值测试
__cmp__ 比较 X == Y, X
__lt__ 特定的比较 X < Y(or else __cmp__)
__eq__ 特定的比较 X == Y(or else __cmp__)
__radd__ 左侧加法 + Noninstance + X
__iadd__ 实地(增强的)加法 X += Y (or else __add__)
__iter__ 迭代环境 用于循环,测试、理解、列表、
映射及其他