🔹 Декораторы Python: как и зачем 🔹 Как @decorator меняет поведение функции без её правки? 🔸 Декоратор решает проблему дублирования и смешения обязанностей: добавить лог, кеш, авторизацию можно отдельно от самой функции. Это упрощает поддержку и тестирование.
🔸 Декоратор оборачивает функцию через wrapper — вложенную функцию, которая получает *args/**kwargs, выполняет дополнительную логику и вызывает оригинал. Код:
def decorator(fn): def wrapper(args, **kwargs): print("call", fn.name) return fn(args, **kwargs) return wrapper
@decorator def f(x): return x*2
🔸 Когда применять: для кросс-каттинга (лог, кеш, валидация). Фишелть — декораторы можно параметризовать и сохранить метаданные с functools.wraps.
📚 Декораторы = удобный способ разделить ответственность и не править исходную функцию.
➡️ Мы в Telegram - Сетке - ВК Буду рад вашей реакции здесь⬇️
В этом посте были ссылки, но мы их удалили по правилам Сетки