零基础入门python43讲
class int(int):def __add__(self,other):
return int.__add__(self,other)
a=int(5)
b=int(3)
a+b为什么会造成无限递归
但是
class int(int):
def __add__(self,other):
return int.__sub__(self,other)
可以得出结果啊!! 因为你第一个类定义的__add__()方法是返回自身的__add__()方法,然后就是对自身的无限调用所以会一直循环下去。
而第二类定义的__add__()方法是返回自身的__sub__()方法,而__sub__()方法是继承程序本身的int里的,返回的是 a - b,所以会得出结果。 °蓝鲤歌蓝 发表于 2018-2-4 21:23
因为你第一个类定义的__add__()方法是返回自身的__add__()方法,然后就是对自身的无限调用所以会一直循环下 ...
我去我竟然懂了{:5_91:}谢谢
页:
[1]