Писал ли свой декоратор
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(1)
some_function() # Выведет: some_function выполнилась за 1.0001 сек.
```
Также можно использовать `functools.wraps` для сохранения метаданных оригинальной функции:
```
from functools import wraps
def logger(func):
@wraps(func)
def wrapper(*args, **kwargs):
print(f"Вызов функции {func.__name__} с аргументами {args}, {kwargs}")
return func(*args, **kwargs)
return wrapper
```