【发布时间】:2017-11-05 03:26:38
【问题描述】:
我想更改 ADD python 魔术方法(我的意思是,__add__)来添加两个数字(代码 1)。当我运行代码时,输出等于 RecursionError: 在 Pycharm IDE 中调用 Python 对象时超出最大递归深度。但是在更改代码(代码 2)之后,新代码可以正常工作。为什么代码 1 不起作用?
代码 1(错误):
class Number(int):
def __add__(self, other):
return self + other
print(Number(5) + 3)
代码 2(正确):
class Number(int):
def __add__(self, other):
return self - (-other)
print(Number(5) + 3)
【问题讨论】:
-
尝试:
return self.__int__() + other或:覆盖__radd__而不是覆盖__add__ -
所以要将您的对象添加到另一个对象,您...添加两个对象?然后通过...添加这两个对象来添加这两个对象?然后你通过......你认为将你的方法定义为
return self + other会做什么?
标签: python