Расскажите о декораторах в Python. Можно ли декорировать только функции?

Декоратор принимает функцию или класс и возвращает объект, который будет связан с исходным именем. Декорировать можно не только функции: синтаксис @ поддерживает и определения классов.

Короткий ответ

Что ответить на собеседовании

Декоратор принимает функцию или класс и возвращает объект, который будет связан с исходным именем. Декорировать можно не только функции: синтаксис @ поддерживает и определения классов.

Подробный разбор

Ответ с пояснениями

Декоратор принимает функцию или класс и возвращает объект, который будет связан с исходным именем. Декорировать можно не только функции: синтаксис @ поддерживает и определения классов.

Несколько декораторов применяются снизу вверх. Для функций обёртка обычно сохраняет метаданные через functools.wraps; декоратор класса может вернуть тот же класс после настройки либо замену. Сам декоратор должен быть вызываемым, но возвращаемый объект не обязан оставаться функцией.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее