Порядок оформления декоратора

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, а не наоборот.

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

Ответы на вопрос(1)

Ваш ответ на вопрос