Какой опыт написания и использования декораторов

Python Senior Без компании
Какой опыт написания и использования декораторов
Ответы
Декораторы в Python — это мощный инструмент для модификации поведения функций или методов без изменения их исходного кода. Они широко используются для логирования, кеширования, проверки прав доступа, тайминга и других cross-cutting concerns. **Пример декоратора для замера времени выполнения:** ``` import time def timer(func): def wrapper(*args, **kwargs): start = time.time() result = func(*args, **kwargs) end = time.time() print(f"{func.__name__} выполнилась за {end - start:.4f} сек") return result return wrapper @timer def long_running_function(): time.sleep(2) long_running_function() # Выведет время выполнения ``` **Ключевые моменты:** - Декораторы принимают функцию и возвращают новую функцию - `functools.wraps` сохраняет метаданны оригинальной функции - Могут быть параметризованными (декораторы с аргументами) - Можно применять несколько декораторов к одной функции - Используются как в стандартной библиотеке (`@property`, `@classmethod`), так и в популярных фреймворках (Flask, Django)