我的问题与这里的问题密切相关: Python 中的函数链 ,这是CodeWars 上的“A 链添加函数”问题。链接中有很多有用的解决方案,但我只想找出我自己的解决方案有什么问题。例如,我想到的第一件事就是使用 Curryingdef add(a): def add2(b): return b + a return add2add(1)(2)会给我3作为输出。现在,我想补充递归,这样add(1),add(1)(2)(3)和add(1)(2)(3)(4)等也按预期方式工作:def add(a): if not callable(a): return a else: def add2(b): return b + add(a) return add2这次按预期add(1)返回1,但是add(1)(2),add(1)(2)(3)等等给了我错误:TypeError: 'int' object is not callable谁能指出这里有什么问题?另外,如何解决呢?非常感谢您的帮助!
2 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
谁能指出这里有什么问题?
当你调用它add(1)
,然后a
是1
(所以不是调用),它会返回1
。下一步:您将拥有1(2)
但因为1
不是可调用的所以失败了。
另外,如何解决呢?
你不能,因为你需要知道什么时候结束递归,但你只知道在你完全完成当前步骤后是否需要更深入。因此,不幸的是,您选择的方法不起作用,您必须寻找不同的方法。这就是您指向有关函数链的问题的链接的地方。
添加回答
举报
0/150
提交
取消