Этот вопрос проверяет понимание механизма декораторов, который используется для модификации поведения функций или классов.
Декораторы — это функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию с изменённым поведением. Они позволяют добавлять функциональность к функциям или методам, не изменяя их код.
Декораторы используются для модификации функций или методов. Это полезно для таких задач, как логирование, проверка прав доступа, кэширование и другие. Декоратор — это функция, которая принимает другую функцию как аргумент, добавляет к ней поведение и возвращает новую функцию.
Пример:
def my_decorator(func):
def wrapper():
print("Перед вызовом функции")
func()
print("После вызова функции")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
# Вывод:
# Перед вызовом функции
# Hello!
# После вызова функцииДекоратор my_decorator оборачивает вызов say_hello дополнительным поведением. Использование @ делает код лаконичным и понятным.