@nishe

Правильно ли я понимаю вызов декоратора?

Как я понимаю, эти две записи получаются абсолютно идентичными?
@decorator('Rap')
и
foo = decorator('Rap')(foo).
def decorator(*args):
    def wrapped(func):
        func.marker = args
        return func

    return wrapped


@decorator('Rap') # In this case we invoke decorator that returns to us wrapped function. Wrapped function becomes to decorator and decorating our foo function
def foo(a, b):
    return a + b
    #decorator('Rap') -> wrapped
    #foo = wrapped(foo)
    #foo = decorator('Rap')(foo)

foo = decorator('Rap')(foo)

print(foo)
print(foo.marker, foo(1, 2))
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Да, первая запись - синтаксический сахар для второй.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы