Python函数调用示例([a,b,c,d])(输入)

时间:2016-06-17 09:01:13

标签: python chained

我对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)这里传递的值是一个列表。但如果它们是功能呢。

请注释任何有用的资源,以便清楚地了解它。

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>中的所有函数应用于传递给第二个(返回的)函数调用的输入。