14 / 72
ТеорияПродвинутыйSenior

Декоратор с состоянием через __call__

Частота на собеседованиях: Средняя - senior-вопрос на альтернативную реализацию декоратораСпрашивают в: Т-Банк, Big Tech-style

Все декораторы, которые мы писали до сих пор, были функциями с вложенными функциями внутри. Но есть и другой способ - оформить декоратор в виде класса, где __init__ принимает декорируемую функцию, а __call__ делает саму работу при вызове. Многим этот вариант кажется даже более наглядным, когда у декоратора много собственного состояния.

Экземпляр класса вместо функции: call