Используешь ли декораторы в работе

Python Middle Без компании
Используешь ли декораторы в работе
Ответы
Да, декораторы — мощный инструмент Python для модификации поведения функций/методов без изменения их кода. Часто применяю их для: - **Логирования** ``` def log_time(func): def wrapper(*args, **kwargs): start = time.time() result = func(*args, **kwargs) print(f"{func.__name__} took {time.time() - start:.2f}s") return result return wrapper @log_time def heavy_calculation(): time.sleep(1) ``` - **Авторизации/валидации** ``` def check_auth(func): def wrapper(request, *args, **kwargs): if not request.user.is_authenticated: raise PermissionError return func(request, *args, **kwargs) return wrapper ``` - **Кэширования** (например, `@functools.lru_cache`) - **Ретриев** (библиотеки типа `@retry`) **Важно**: - Декораторы могут усложнить отладку (используйте `functools.wraps` для сохранения метаданных). - Вложенные декораторы выполняются сверху вниз (`@A @B def foo` → `A(B(foo))`).