• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

higher order function 에서

23.07.17 22:07 작성 조회수 216

1

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

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

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

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

답변 1

답변을 작성해보세요.

0

안녕하세요 남기정님

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

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

 

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

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

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

남기정님의 프로필

남기정

질문자

2023.07.20

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

안녕하세요 남기정님,

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