|
我看到书中说当第一个对象如果没有__add__()方法时会调用第二个参数的__radd__
例子如下:
>>> class Nint(int):
def __radd__(self,other):
return int.__sub__(self,other)
>>> a=Nint(1)
>>> a
1
>>> 2+a
-1
此时第一个对象2是int类型,照理不是有__add__方法吗,为什么会触发第二个Nint型的a对象的__radd__方法
求各位帮忙解答
我还试过如下程序
>>> class Nint(int):
pass
>>> a=Nint(1)
>>> a
1
>>> 1+a
2
此时到底调用的是1的__add__方法,还是a的__radd__方法呢?
|
|