求助关于反制魔法方法问题__add__ / __radd__
class Nint(int):
def __radd__(self,oc):
print('我被调用了')
return int.__radd__(self,oc)
a = Nint(3)
b = Nint(4)
print(a+b)
print(1+b)
print(a+1)
关于代码里的:return int.__radd__(self,oc)
这里的__radd__不管是用add还是radd,输出结果都是一样的,请问两者有什么区别吗{:10_277:} hello?有没有大佬帮忙讲解一下{:10_266:} 这就像问你 1+3 和 3+1 有什么区别,算式的结果没区别,不过是顺序调换了一下而已。
但减法就不一样了,例如 1-3 不等于 3-1 。 zltzlt 发表于 2020-7-21 19:47
这就像问你 1+3 和 3+1 有什么区别,算式的结果没区别,不过是顺序调换了一下而已。
但减法就不一样了, ...
是return int.__radd__(self,oc)这里的__radd__我换成__add__结果也是一样的{:10_277:} UncleMonster 发表于 2020-7-21 19:48
是return int.__radd__(self,oc)这里的__radd__我换成__add__结果也是一样的
你听不懂话嘛{:10_277:}3L说的很清楚了
int 默认 __add__ 和 __radd__ 应该都是使得两个值相加的结果吧所以你改了还是一样的效果 Twilight6 发表于 2020-7-21 21:26
int 默认 __add__ 和 __radd__ 应该都是使得两个值相加的结果吧所以你改了还是一样的效果
酱紫,感谢大佬
页:
[1]