Декоратор в Python — это функция, которая оборачивает другую функцию или класс, чтобы изменить или улучшить её поведение, не меняя исходный код. Декораторы используют символ @ для удобного применения.
Декораторы работают так: берут функцию на вход, добавляют дополнительную функциональность и возвращают новую улучшенную версию этой функции. Это позволяет тебе:
Стандартный синтаксис использует символ @, который ставится прямо над определением функции:
@decorator_name
def my_function():
pass
Это эквивалентно:
my_function = decorator_name(my_function)
Частый случай — создание декоратора для замера времени, чтобы измерить время выполнения функции:
def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
print(f"Execution time: {time.time() - start}s")
return result
return wrapper
@timer
def slow_function():
time.sleep(2)
@ делает задекорированные функции сразу заметнымиДекораторы — это базовая возможность Python, которая широко используется во фреймворках вроде Flask и Django для маршрутизации, аутентификации и middleware.
Декоратор в Python — это синтаксический сахар, который напрямую изменяет исходный объект функции на месте, без создания новой функции или обёртки.
Новый — ещё не проверен сообществом
Вы