Декоратор преобразует функцию или класс и позволяет добавить поведение без изменения места вызова. Частый пример — обёртка для логирования или проверки доступа.
Что такое декоратор в Python?
Декоратор преобразует функцию или класс и позволяет добавить поведение без изменения места вызова. Частый пример — обёртка для логирования или проверки доступа.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Декоратор преобразует функцию или класс и позволяет добавить поведение без изменения места вызова. Частый пример — обёртка для логирования или проверки доступа.
Синтаксис @d над функцией f соответствует применению d к f и сохранению возвращённого объекта под тем же именем. Декоратор выполняется при определении, а код обёртки — при последующих вызовах.
Для обычной обёртки используйте functools.wraps и передавайте аргументы корректно. Не подавляйте исключения случайно. Если оборачивается async-функция, нужно сохранить подходящий асинхронный контракт.