我想实现类'Add',这样就可以使用python中的call方法和继承来返回在单独的一组括号中传递的参数的总和。例如:
>>>Add(10)
10
>>>Add(10)(11)
21
>>>Add(10)(11)(12)
33
我试了这段代码没有收到预期的结果。
class Add():
def __init__(self, a):
self.a = a
def __call__(self, number):
print(self.a + number)
>>>Add(10)
10
>>>Add(10)(11)
21
但是第三次(Add(10)(11)(12)
)我收到了错误'int object is not callable.”
1条答案
按热度按时间k3fezbri1#
我对你收到的错误消息感到惊讶:
int object is not callable.
你会得到'NoneType' object is not callable
。至少我查你的代码时是这样的为了实现您想要实现的目标,您需要将示例返回到调用站点,以便您可以再次
__call__
它。我建议你这样修改代码:
你可以像这样使用它:
现在,这将更改
Add(10)
的原始示例。如果这不是你想要的,你可以用下面的代码替换你的__call__
方法:这样,基本
Add
示例就不会真正改变。