Python 第八节 第十二课
[toc]
特殊方法和运算符重载
Python 的运算符实际上是通过调用对象的特殊方法实现的. 比如:
执行结果:
常见的特殊方法统计如下:
__init__ 构造方法 对象创建: p = Person()
__del__ 析构方法 对象回收 对象回收
__repr__, __str__ 打印, 转换 print(a)
__call__ 函数调用 a()
__getattr__ 点号运算 a.xxx
__satattr__ 属性赋值 a.xxx = value
__gettitem__ 索引运算 a[key]
__setitem__ 索引赋值 a[key]
__len__ 长度 len(a)
每个运算符实际上都是应对了相应的方法, 统计如下:
运算符+ __add__ 加法
运算符- __sub__ 减法
<, <=, == __it__, __le__, __eq__ 比较运算符
>, >=, != __gt__, __ge__, __ne__ 比较运算符
|, ^, & __or__, __xor__, __and__ 或, 异或, 与
<<, >> __lshift__, __rshift__ 左移, 右移
*, / __mul__, __truediv__ 乘, 浮点除
%, // __mod__, __floordiv__ 模运算 ( 取余), 整数除
** __pow__ 指数运算
我们可以重写上面的特殊方法, 即实现了 "运算符的重载".
执行结果: