Этот вопрос проверяет знание концепции замыканий — одной из ключевых особенностей функций в Python.
Замыкание — это функция, которая "запоминает" переменные из своей внешней области видимости, даже если эта область больше недоступна. Это позволяет функции использовать контекст, в котором она была создана.
Замыкание возникает, когда:
Внутри функции определена другая функция.
Вложенная функция использует переменные из внешней функции.
Внешняя функция возвращает вложенную функцию.
Пример:
def make_multiplier(factor):
def multiplier(x):
return x * factor # factor сохраняется в замыкании
return multiplier
double = make_multiplier(2)
print(double(5)) # 10Как это работает:
Переменная factor сохраняется в замыкании, даже после завершения работы make_multiplier.
Замыкания полезны для создания функций с сохранением состояния.
Когда использовать:
При создании функций с состоянием (например, счетчики, конфигурации).
В функциях высшего порядка.