Middle
24
Какие задачи решал с помощью своих декораторов в Python?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Python декораторы я использовал для решения различных задач, связанных с расширением функциональности функций без изменения их кода. Например:
- Логирование вызовов функций — чтобы автоматически записывать входные параметры и результаты.
- Кэширование результатов — для оптимизации повторных вызовов с одинаковыми аргументами.
- Проверка прав доступа — в веб-приложениях для ограничения доступа к определённым функциям.
- Измерение времени выполнения — для профилирования и оптимизации кода.
Пример простого декоратора для логирования:
import functools
def log_calls(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
print(f"Вызов {func.__name__} с args={args}, kwargs={kwargs}")
result = func(*args, **kwargs)
print(f"{func.__name__} вернула {result}")
return result
return wrapper
@log_calls
def add(a, b):
return a + b
add(2, 3)
Такой подход помогает писать более чистый и поддерживаемый код, отделяя вспомогательную логику от основной.