python 魔法方法-----反运算
各位好帮我分析下,看我理解的对不对 如果不对请指点如图class Nint(int):
def __rsub__(self, other):
return int.__sub__(self, other)
>>> a = Nint(5)
>>> 3 - a
2
在这里def __rsub__(self, other)实例变量a 传进去是传给了self ,然后执行的时候 返回值return 执行self == a == 5
return 调用 __sub__ 魔法方法,self - 3 然后就结果就变成 2 了 ?是这样么? 本帖最后由 Hacker_Jack 于 2018-5-13 20:36 编辑
在这里a是Nint的一个实例对象,所以调用它自身的 __rsub__(self, other)后,self应该为对象a,这个对象也与return语句中的self是一个东西,楼主理解的并没有问题。因为a在你的代码里是作为被减数(正常数学中的被减数,不是指上述代码中的顺序)存在的,你在IDLE中试着调用任意整型对象的__sub__(self, other)方法,可以很容易得出self就是被减数。所以楼主的理解我认为没有什么问题,如果有错,请楼下纠正吧。{:10_256:} Hacker_Jack 发表于 2018-5-13 20:34
在这里a是Nint的一个实例对象,所以调用它自身的 __rsub__(self, other)后,self应该为对象a,这个对象也与 ...
好的 谢谢 有不同见解么 顶一下 是的,self必然指的是实例对象,反运算的other是非实例对象,因而a=5,other=3,5-3=2 可以
页:
[1]