Задать вопрос
@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 Простой Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Да, первая запись - синтаксический сахар для второй.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
02 февр. 2025, в 19:02
50000 руб./за проект
02 февр. 2025, в 18:10
3000 руб./за проект
02 февр. 2025, в 17:00
350 руб./в час