2016-06-17 3 views
0

저는 파이썬 프로그래밍에 비교적 익숙합니다. 코드 워커에서이 코드 스 니펫을 보았습니다. 여기파이썬 함수 호출 예제 ([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([1,2,3])(1) 그냥 알고 있어요 d(c(b(a(input))))

의 결과와 동일한 결과를 반환하는 example 함수를 정의 할 필요가있다. 그러나 그들이 기능면 어떨까요?

명확하게 이해할 수있는 참고 자료를 제공해주세요.

+1

표시된 코드에서 오류가 발생합니다 ('아무 값도 호출 할 수 없음'). 일반적으로 함수를'f (parameters)'로 호출합니다. 또한 파이썬에서 주석은'# '에 의해 시작된다는 것에주의하십시오. 파이썬 함수는 단지 일반적인 객체이므로 변수에 할당하고 목록에 넣고 함수 매개 변수로 사용하면 다음과 같이 정의 할 수 있습니다. 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>)가 2에 전달 된 입력에 <functionlist>의 모든 기능을 적용 2 기능을 반환하는 함수 호출 (반환).

+0

고맙습니다. 그것에 대해 더 자세히 읽을 수 있도록 모든 리소스를 제안 해 주시겠습니까? –