我的问题与这里的问题密切相关: Python 中的函数链 ,这是CodeWars 上的“A 链添加函数”问题。链接中有很多有用的解决方案,但我只想找出我自己的解决方案有什么问题。
例如,我想到的第一件事就是使用 Currying
def add(a):
def add2(b):
return b + a
return add2
add(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
谁能指出这里有什么问题?另外,如何解决呢?非常感谢您的帮助!
翻阅古今
相关分类