Код: Выделить всё
def make_bold(fn):[b] return lambda : "" + fn() + "[/b]"[b]
def make_italic(fn):
return lambda : "[i]" + fn() + "[/i]"
@make_bold
@make_italic
def hello():
return "hello world"
helloHTML = hello()
Я примерно понимаю, что такое декораторы и как они работают с одним из них в большинстве примеров.
В этом примере их два. Судя по выводу, сначала выполняется @make_italic, затем @make_bold.
Означает ли это, что для декорированных функций сначала выполняется сначала запустить функцию, а затем перейти к началу для других декораторов? Например, сначала @make_italic, затем @make_bold, а не наоборот.
Итак, это означает, что это отличается от нормы нисходящего подхода. подход в большинстве языков программирования? Только для этого случая декоратор? Или я ошибаюсь?
Подробнее здесь: https://stackoverflow.com/questions/273 ... tion-order