2016-06-17 78 views
0

我对Python编程比较新,我在codewarriors中看到了这个代码片段。 有人可以请解释一下这个代码...Python函数调用示例([a,b,c,d])(输入)

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

您显示的代码将引发错误(“无值不可调用”)。一般你可以用'f(parameters)'调用函数。另请注意,在Python中,注释由'#'开始。在python中,函数只是普通的对象,所以你可以将它们分配给变量,将它们放入列表中,用它们作为函数参数,...所以像下面这样定义得很好:'def call(f,argument):return f (自变量)'。 – syntonym

+0

我编辑了代码。对不起。 –

+0

函数是其他所有对象。它们可以传递给函数并由函数返回。例如,'sorted'函数使用一个'key'参数是有效的:'sorted([1,2,3,4,5,6],key = lambda x:x%2)''将返回'[2, 4,6,1,3,5]'。 – Bakuriu

回答

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>适用所有的功能传递给第2个输入端的第2个功能(返回)函数调用。

+0

谢谢,您能否提供任何资源,以便我可以阅读更多信息。 –

相关问题