Декоратор — это вызываемый объект, который принимает функцию или класс и возвращает измененную версию, обычно оболочку.
Пример
from functools import wraps
def log_calls(func):
@wraps(func)
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
Разбор
Обычное использование включает ведение журнала, кэширование, авторизацию, повторные попытки и метрики.
Суммируя:
- Декоратор добавляет сквозное поведение.
- Он работает путем упаковки вызываемого объекта.
- Это помогает избежать дублирования технической логики в бизнес-коде.
Итог
Декоратор — это вызываемый объект, который принимает функцию или класс и возвращает измененную версию, обычно оболочку.