Зачем нужен декоратор в Python
Python
Middle
Без компании
Зачем нужен декоратор в Python
Ответы
Декораторы позволяют динамически изменять поведение функции или класса без изменения их исходного кода. Они оборачивают целевую функцию, добавляя дополнительную логику до/после вызова.
Основные применения:
- Логирование
- Кеширование
- Проверка прав доступа
- Замер времени выполнения
- Повторные попытки при ошибках
Пример простого декоратора:
```
def log_time(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
print(f"Время выполнения: {time.time() - start:.2f} сек")
return result
return wrapper
@log_time
def heavy_calculation():
time.sleep(1)
return 42
```
Декораторы делают код чище, разделяя основную логику и вспомогательную функциональность. Они реализуют принцип DRY (Don't Repeat Yourself) и позволяют легко переиспользовать общую логику для разных функций.