CarterZhang 发表于 2020-11-26 15:55:11

__radd__(self,other)问题求助

在看小甲鱼的课程,遇到这样一个例子:
>>> class Nint(int):
        def __radd__(self,other):
                return __sub__(self,other)

       
>>> a = Nint(5)
>>> b = Nint(6)
>>> a + b
11

return的明明是sub,为什么还是两个数相加呢?求解答!

逃兵 发表于 2020-11-26 16:08:02

首先,代码没打对,应该为

class Nint(int):
    def __radd__(self,other):
      return int.__sub__(other,self)

其次a对象默认有__add__()方法,所以b的__radd__()没有执行

>>> a=Nint(5)
>>> b=Nint(6)
>>> a+b
11

1+b的话会执行

>>> 1+b
-5

页: [1]
查看完整版本: __radd__(self,other)问题求助