Junior — Middle
100
Quelle est la nécessité d'utiliser des fonctions imbriquées dans Python via un décorateur?
Réponse de l'IA
sobes.tech IA
Вложенные функции в декораторах Python используются для создания замыканий, которые позволяют:
- Захватить и сохранить состояние или параметры, переданные в декоратор.
- Обернуть исходную функцию дополнительной логикой без изменения её интерфейса.
Вложенная функция (обычно называется wrapper) принимает аргументы исходной функции, выполняет дополнительный код (например, логирование, проверку прав, кэширование), затем вызывает оригинальную функцию и возвращает результат.
Пример:
def decorator(func):
def wrapper(*args, **kwargs):
print(f"Вызов функции {func.__name__}")
result = func(*args, **kwargs)
print(f"Функция {func.__name__} завершена")
return result
return wrapper
@decorator
def greet(name):
return f"Привет, {name}!"
print(greet("Мир"))
Здесь вложенная функция wrapper обеспечивает дополнительное поведение вокруг вызова greet.