1、反运算:
例如两个变量相加,第一个变量承担主动角色,执行相加运算,当第一个变量不存在加的属性,则需要运用第二个变量的加的属性,即第二个变量的反运算。
class Nint(int):
def __radd__(self,other):
return int.__sub__(self,other)
#
a = Nint(5)
b = Nint(3)
a + b
# 结果为8,执行了a中的相加属性
1 + b
# 结果为2,因为a中没有相加属性,故执行b中的反运算(重写了反运算,调用的是减运算)
class Nint(int):
def __rsub__(self,other)
return int.__sub__(self,other)
# a = Nint(5)
3 - a
# 输出为2,调用a的rsub属性,self传入的参数为5,other为3