|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- class Try_int(int):
- def __add__(self,other):
- return int(self + other)
- a =Try_int(3)
- b =Try_int(5)
- print(a + b)
复制代码
请问:
1、int(self + other),和 int(self) + int(other),有和区别,为什么前者进入无线递归BUG?int()的结果不是整数吗?
2、顺便问题一下,进入无限递归是因为 return self + other ,是因为 3 + 5吗?为什么系统不自动默认返回结果是8?
还是说,return反馈的是a + b?
1. 前者调用了自身, 而后者调用的是 int 类的方法
2. 这里的 + 不是 int 类的 + 而是子类的 +
- class Try_int(int):
- def __add__(self,other):
- return int(Try_int.__add__(self, other))
- # return int(self + other)
复制代码
|
|