인프런 커뮤니티 질문&답변
higher order function 에서
작성
·
336
답변 2
1
Decorator는 외부 함수를 받아 기능을 추가한 새로운 내부 함수를 리턴하는 구조(디자인 패턴)이고,
@higher_order_example 문법은
sample_example = higher_order_example(sample_example)
를 간략히 대체하는 것으로 보면 될까요?
1
미쿡엔지니어
지식공유자
안녕하세요 남기정님
128줄에 return inside에서 inside()를 안하는 이유가 궁금합니다@higher_order_example 자체가 inside 리턴받은 함수를 자동으로 ()붙여서 실행해주는 것인가요?
=> 간단한 대답은 네 그렇습니다. () 표시가 함수를 실행시킨다고 생각하시면 될 듯합니다.
136줄에 sample_example()을 안쓰면 121줄에 있는 func 매개변수로 못넣는것인가요???
=> 121줄에 있는 func는, 131줄에 있는 decorator가 자동으로 132 ~ 133를 데리고 간것으로 치환한다고 생각하시면 될 듯합니다.
=> 136줄은 sample_example 함수를 실행시키는 겁니다.







네 맞습니다.
@decorator는 문법 설탕(syntax sugar) 이고 "기존 함수를 데코레이터 함수로 한 번 감싸서 다시 할당한다" 라고 이해하면 됩니다.