Back to questions
Junior — Middle
67
Можно ли объяснить, что происходит внутри функции-замыкания и как оно запоминает окружающие переменные?
Answer from AI
sobes.tech AI
Функция-замыкание в Python — это функция, которая запоминает и может использовать переменные из окружающего (внешнего) контекста, даже если этот контекст уже завершил своё выполнение.
Когда внутри функции определяется вложенная функция, она захватывает ссылки на переменные из внешней функции, а не их значения. Эти переменные сохраняются в специальной области памяти — замыкании (closure), что позволяет вложенной функции обращаться к ним позже.
Пример:
def outer(x):
def inner(y):
return x + y # x берётся из внешней функции
return inner
f = outer(10)
print(f(5)) # Выведет 15
Здесь inner запоминает значение x из outer, даже после того, как outer завершила работу. Это позволяет создавать функции с сохранённым состоянием без использования глобальных переменных.