Junior
72
questionbank

Можно ли создать декоратор из класса?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Да, можно. Класс должен реализовывать метод __call__(), который будет выполняться при вызове экземпляра класса как функции. Экземпляр этого класса может быть использован как декоратор.

python

В этом примере:

  • MyDecorator - это класс, который становится декоратором.
  • __init__ принимает декорируемую функцию.
  • __call__ оборачивает вызов декорируемой функции, позволяя добавить логику до и после ее выполнения.
  • @MyDecorator над my_function применяет класс MyDecorator как декоратор.