현재 책을 공부하고 있는 사람인데요.
53페이지 뱀잡기에 보면
def testLambda(g):
g(1, 2, 3)
이렇게 함수가 정의되어 있는데,
여기서 g(1, 2, 3)의 뜻을 잘 모르겠습니다.
매개변수 g가 들어왔을때
g(1, 2, 3)가 어떤 일을 하는건지 알고 싶습니다.
감사합니다.
우선 g는 아로나님께서 말씀하신 것 처럼 testLambda의 매개변수(인수)입니다.
testLambda를 만들 때 함수의 레퍼런스를 받기 위해서 함수 인수 선언 부분에 g를 넣었습니다.
즉 g는 함수의 레퍼런스를 받는 인수 입니다.
g(1, 2, 3)은 g가 가리키는 함수에 1, 2, 3 이라는 인수를 넣어서 실행 시키라는 의미입니다.
def testLambda(g):
g(1, 2, 3)
아래를 보시면 testLambda의 인수 부분에 람다 함수가 선언 되어 있는 것이 보일 것 입니다.
3장 "함수"에 설명 되어 있는 것 처럼 함수의 인수는 레퍼런스만 전달 할 뿐입니다.
즉 생성된 람다 함수는 testLambda의 인수 g라는 이름으로 함수 내부로 전달이 되고 (1, 2, 3) 이라는 인수값으
로 실행이 되는 것입니다.
조금 더 쉬운 설명을 위해서 예를 들겠습니다.
>>> def testLambda(g):
g(1, 2, 3)
>>> def testFunction(a, b, c):
print (a + b + c)
>>> testFunction(1, 2, 3)
6
>>> testLambda(testFunction)
6
이번 예제에서 인수 g는 testFunction이 된 것이고
testFunction(1, 2, 3)을 직접 호출 한 것과 똑같습니다.
공부하시다가 모르는 부분이 있으면 언제든지 물어 보세요.
감사합니다.
함수의 레퍼런스를 넘겨주고 실제 lambda함수를 호출하는것과
같은 기능을 하는군요...^^
다음에 또 궁금한점 있으면 질문드릴게요.
감사합니다.
> > 감사합니다.- 원본 텍스트 숨기기 -
>
> - 원본 텍스트 보기 -