Декоратор — вызываемый объект, который преобразует функцию или класс. Синтаксис @decorator позволяет применить это преобразование при определении объекта.
Что такое декораторы в Python?
Декоратор — вызываемый объект, который преобразует функцию или класс. Синтаксис @decorator позволяет применить это преобразование при определении объекта.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Декоратор — вызываемый объект, который преобразует функцию или класс. Синтаксис @decorator позволяет применить это преобразование при определении объекта.
Типичный декоратор возвращает обёртку, добавляющую действие до или после вызова функции: логирование, проверку доступа, кеширование. Он также может вернуть иной совместимый объект.
Запись @decorator над функцией f по смыслу соответствует f = decorator(f). Для обёрток обычно используют functools.wraps, чтобы сохранить имя и документацию исходной функции. Декоратор с параметрами добавляет ещё один уровень: сначала создаётся декоратор, затем он применяется к функции.