Декораторы в Python — это мощный инструмент, который позволяет модифицировать или расширять поведение функций или методов без изменения их исходного кода. Они часто используются для реализации различных паттернов проектирования, таких как обертка, авторизация, кеширование и логирование. В этой статье мы рассмотрим, как декораторы могут помочь в оптимизации кода и сделать его более читаемым и поддерживаемым. import time
def log_function_call(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
@log_function_call
def example_function(x):
time.sleep(x)
return "Готово!"
example_function(2) В этом примере декоратор log_function_call добавляет функциональность логирования к функции example_function, фиксируя время выполнения. def cache(func):
cached_results =