Junior — Middle
100
Kako primeniti dekorativnu funkciju na drugu funkciju bez korišćenja sintaktičkog šećera '@'?
Компаније где су питане
Одговор од АИ
sobes.tech АИ
Декорирующую функцию можно применить к другой функции без использования синтаксического сахара '@', просто вызвав декоратор и передав функцию как аргумент. Например:
# Определение декоратора
def decorator(func):
def wrapper(*args, **kwargs):
print("До вызова функции")
result = func(*args, **kwargs)
print("После вызова функции")
return result
return wrapper
# Обычная функция
def say_hello():
print("Привет")
# Применение декоратора без '@'
say_hello = decorator(say_hello)
say_hello()
Вывод будет:
До вызова функции
Привет
После вызова функции
Таким образом, '@decorator' — это просто синтаксический сахар для присваивания функции, возвращаемой декоратором, исходному имени функции.