|
楼主 |
发表于 2021-8-7 10:16:18
|
显示全部楼层
本帖最后由 bravsheng 于 2021-8-7 10:30 编辑
class B(int):
def __add__(self , other):
print("调用b的__add__")
return int.__add__(self , other)
def __radd__(self , other): #把B的radd改写成减法
print("调用b的__radd__")
return int.__sub__(self , other)
class A(int):
def __add__(self , other):
print("调用a的__add__")
return int.__add__(self , other)
a = A(4)
b = B(3)
执行结果:
>>> 4+b
调用b的__radd__
-1
>>> a+b
调用a的__add__
7
这里我还是有点疑问: (·_·?)
4和b分别来源与int类和B类,调用a的add方法没成功,转而去找b的radd的方法。
a和b分别来源于A,B两个类, 这算是同一类型吗? 为什么a的add方法可以成功运行!?
|
|