Писал ли свои декораторы
Python
Junior
Без компании
Писал ли свои декораторы
Ответы
Да, писал. Декораторы в Python — это функции, которые принимают другую функцию и расширяют её поведение без явного изменения кода. Они часто используются для логирования, кэширования, проверки прав доступа и т.д.
Пример простого декоратора для замера времени выполнения функции:
```
import time
def timer_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Функция {func.__name__} выполнилась за {end_time - start_time:.4f} сек")
return result
return wrapper
@timer_decorator
def some_function():
time.sleep(2)
some_function() # Выведет время выполнения
```
Ключевые моменты:
- Декоратор принимает функцию и возвращает новую (обычно `wrapper`)
- `*args, **kwargs` позволяют декоратору работать с любыми функциями
- `@`-синтаксис делает применение декоратора удобным