Встречается на собеседованиях • сегодня

Зачем нужна вложенная функция декоратора в Python

Вложенная функция в декораторе нужна для сохранения состояния и обертывания оригинальной функции. Декоратор принимает функцию, а вложенная (wrapper) заменяет её поведение, добавляя логику до/после вызова.

python
def my_decorator(func):
    def wrapper(*args, **kwargs):
        print("До вызова функции")
        result = func(*args, **kwargs)
        print("После вызова функции")
        return result
    return wrapper

@my_decorator
def say_hello():
print("Hello!")

say_hello()

text

**Зачем вложенность?**  
1. `wrapper` получает аргументы оригинальной функции.  
2. Позволяет модифицировать поведение, не меняя исходный код.  
3. Сохраняет контекст (`func` доступна внутри `wrapper`).  

Без вложенности декоратор не смог бы принимать аргументы функции и возвращать результат.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы