def make_bold(fn):
return lambda : "<b>" + fn() + "</b>"
def make_italic(fn):
return lambda : "<i>" + fn() + "</i>"
@make_bold
@make_italic
def hello():
return "hello world"
helloHTML = hello()
산출: "<b><i>hello world</i></b>"
나는 대략적으로 데코레이터에 대해 이해하고 대부분의 예제에서 데코레이터 중 하나와 어떻게 작동하는지 이해합니다.
이 예에는 2 개가 있습니다. 출력에서 @make_italic
먼저 실행되고 @make_bold
.
이것은 데코 레이팅 된 함수의 경우 먼저 함수를 먼저 실행 한 다음 다른 데코레이터를 위해 맨 위로 이동한다는 것을 의미합니까? 그 반대 대신에 @make_italic
처음 처럼 @make_bold
.
그래서 이것은 대부분의 프로그래밍 언어에서 하향식 접근 방식의 표준과 다르다는 것을 의미합니까? 이 데코레이터의 경우에만? 아니면 내가 틀렸나 요?