Порядок выполнения декоратораPython

Программы на Python
Anonymous
Порядок выполнения декоратора

Сообщение Anonymous »

Код: Выделить всё

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()
Вывод: «привет, мир[/b]»

Я примерно понимаю, что такое декораторы и как они работают с одним из них в большинстве примеров.

В этом примере их два. Судя по выводу, сначала выполняется @make_italic, затем @make_bold.

Означает ли это, что для декорированных функций сначала выполняется сначала запустить функцию, а затем перейти к началу для других декораторов? Например, сначала @make_italic, затем @make_bold, а не наоборот.

Итак, это означает, что это отличается от нормы нисходящего подхода. подход в большинстве языков программирования? Только для этого случая декоратор? Или я ошибаюсь?

Подробнее здесь: https://stackoverflow.com/questions/273 ... tion-order

Вернуться в «Python»