Этот вопрос проверяет знание концепции замыканий — одной из ключевых особенностей функций в 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.
- Замыкания полезны для создания функций с сохранением состояния.
Когда использовать:
- При создании функций с состоянием (например, счетчики, конфигурации).
- В функциях высшего порядка.