python中的运算符使用时是调用了对象的方法
方法 | 运算符 | 说明 |
---|---|---|
__add __ | 加法 | + += |
__sub __ | 减法 | - -+ |
__mul __ | 乘法 | * *= |
__div __ | 除法 | / /= |
__mod __ | 求余 | % %= |
__bool __ | 布尔 | bool() |
__eq __ | 等于 | == |
__ne __ | 不等于 | != |
__ge __ | 大于等于 | >= |
__le __ | 小于等于 | <= |
__gt __ | 大于 | > |
__lt __ | 小于 | < |
__contains __ | 成员运算 | in |
__getitem __ | 切片 | x[:] |
__setitem __ | 切片赋值 | x[:]= |
__delitem __ | 切片删除 | del x[:] |
__len __ | 长度 | len() |
__iter __, __next __ | 迭代 | iter() next() for while |
__repr __, __str __ | 打印、转换 | print() pepr() str() |
加法运算重构(类外的+),将一一对应的列表元素相加
class Demo:
def __init__(self,obj): # 参数self是类自身,参数obj对象传递的参数
self.data=obj # 添加对象属性
def __add__(a,b): # 参数a是对象a ,参数b是对象b
n=len(a.data)
num=[a.data[i]+b.data[i] for i in range(n)]
return Demo(num) # 返回新的对象
a=Demo([1,2,3]) # a 对象
b=Demo([3,2,1]) # b 对象
c=a+b # c 对象
print(c.data)