1005663861 发表于 2020-2-4 16:09:05

算术运算的问题

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

       
>>> a = Nint(4)
>>> b = Nint(6)
>>> c = Nint(50)
>>> 3-b-a
1
>>> class Nint(int):
        def __rsub__(self,other):
                return int.__sub__(other,self)

       
>>> 3-b-a
1
>>>

小甲鱼说这里的self是b的对象 other是a的对象,但是这么更改顺序也没有问题啊

zltzlt 发表于 2020-2-4 16:12:55

这样是没问题,但是换成这样就有问题了:

>>> class Nint(int):
      def __rsub__(self, other):
                return int(self) - int(other)

      
>>> a = Nint(3)
>>> 5 - a    # 变成了 a - 5
-2

傻眼貓咪 发表于 2021-9-7 22:12:26

{:5_99:}
页: [1]
查看完整版本: 算术运算的问题