我正在学习如何在python中返回lambda选项,我有一个问题:
我需要填写这个函数中的返回:
def func(n):
if n==0:
print("finished")
else:
return ___
func(5)()()()()()
func(3)()()()
func(8)()()()()()()()()产出:
finished
finished
finished我认为这是一个递归调用,比如返回func(n-1),但是它不起作用,并抛出一个错误。是否有办法克服额外的空括号?数一数?做点什么,因为它应该是可以运行的。
谢谢
发布于 2022-04-16 16:25:37
你说得对,需要使用lambdas和func 1,特别是
return lambda: func(n-1)这将返回一个不需要传入任何参数的lambda来处理括号,返回的是使用n-1调用的函数,在大多数调用中,该函数返回的是下一个lambda函数调用。
发布于 2022-04-16 16:24:21
操作符()是函数调用。例如:
def foo():
print('Foo executed')
def bar():
# We return the foo FUNCTION itself, without calling it.
return foo在上面的代码中,如果您执行foo(),它将打印"Foo“。但是如果您执行bar(),它将返回foo,这是一个函数。因此您可以执行bar()(),其中第一个()正在执行函数条,返回foo,然后使用第二个()调用返回的foo函数。
编辑:当我输入它时,您删除了这些()的内容,因为它们对您来说是新的.但我把它留在那里也许会有帮助。
https://stackoverflow.com/questions/71895503
复制相似问题