我对python编程比较陌生,我在codewarriors中看到了这段代码片段。 有人可以解释一下这段代码......
def example(functions):
#my_code
return None
example([a,b,c,d])(input) #What kind of call is this?
这里a,b,c,d是定义的函数。
我需要定义example
函数以返回与d(c(b(a(input))))
我只熟悉example([1,2,3])(1)
这里传递的值是一个列表。但如果它们是功能呢。
请注释任何有用的资源,以便清楚地了解它。
答案 0 :(得分:2)
让我们来看看foo(x)(y)
通常意味着什么:
def foo(x):
def bar(y):
return x + y
return bar
print(foo(2)(3)) #prints 5
这里第一个函数调用返回另一个函数,然后使用自己的参数调用它,它也可以使用第一个函数的参数和局部变量。
在你的情况下,他们可能想要你写的是:
def example(functions)
def f(input):
for function in functions:
input = function(input)
return result
return f
example(<functionlist>)
返回第二个函数,它将<functionlist>
中的所有函数应用于传递给第二个(返回的)函数调用的输入。