인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

남기정님의 프로필 이미지
남기정

작성한 질문수

실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지

Higher order function(고위 함수)에 대해 알아보기

higher order function 에서

해결된 질문

작성

·

308

1

bandicam 2023-07-17 22-03-04-334.jpg

128줄에 return inside에서 inside()를 안하는 이유가 궁금합니다

@higher_order_example 자체가 inside 리턴받은 함수를 자동으로 ()붙여서 실행해주는 것인가요?

136줄에 sample_example()을 안쓰면 121줄에 있는 func 매개변수로 못넣는것인가요???

답변 1

1

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

안녕하세요 남기정님

128줄에 return inside에서 inside()를 안하는 이유가 궁금합니다@higher_order_example 자체가 inside 리턴받은 함수를 자동으로 ()붙여서 실행해주는 것인가요?

=> 간단한 대답은 네 그렇습니다. () 표시가 함수를 실행시킨다고 생각하시면 될 듯합니다.

 

136줄에 sample_example()을 안쓰면 121줄에 있는 func 매개변수로 못넣는것인가요???

=> 121줄에 있는 func는, 131줄에 있는 decorator가 자동으로 132 ~ 133를 데리고 간것으로 치환한다고 생각하시면 될 듯합니다.

=> 136줄은 sample_example 함수를 실행시키는 겁니다.

남기정님의 프로필 이미지
남기정
질문자

근데 131줄 데코레이터 자체가 higher_order_example()을 하는것인데 왜 136줄에 sample_example()을 실행시키지 않으면 higher_order_example()이 실행 안되나요?

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

안녕하세요 남기정님,

131줄은 () 가 없습니다. 제가 말씀드린대로 함수를 실행하기위해서는 ()를 넣으셔야 실행이 됩니다. 즉, 자체적으로 실행을 하지 않기 때문에, Decorator(장식어)라고 불립니다.

남기정님의 프로필 이미지
남기정

작성한 질문수

질문하기