只爱整活周淑怡 发表于 2020-8-18 21:50:34

关于算术方法 求看看

class Newint(int):
    def __add__(self,other):
      return int.__add__(self,other)
    def __sub__(self,other):
      return int.__sub__(self,other)


如果我令 a=Newint(5),b=Newint(6) 然后我a+b中的+号是不是相当于调用了Newint中的__add__方法,而Newint中的__add__方法和int.__add__中的add这两个add是不是两个不同的方法一个属于Newint 一个属于int,可以这样理解吗?


zltzlt 发表于 2020-8-18 21:56:53

可以这样理解

只爱整活周淑怡 发表于 2020-8-18 22:09:50

zltzlt 发表于 2020-8-18 21:56
可以这样理解

还有一个就是小甲鱼的视频中这段class Newint(int):
    def __add__(self,other):
      return int(self)+int(other)
    def __sub__(self,other):
      return int(self)-int(other)
能正常运行 但是变成class Newint(int):
    def __add__(self,other):
      return self+other
    def __sub__(self,other):
      return self+other
之后就会因为无限递归报错,为什么上面那个不会报错 二者不都递归了吗???
页: [1]
查看完整版本: 关于算术方法 求看看