Это замыкание или нет? Здравствуйте. Прохожу курс по python и немного не понимаю тему замыкания. Если это замыкание, то обязательно ли чтобы внутренняя функция возвращалась из внешней функции или достаточно чтоб внутренняя функция имела доступ к переменным из внешней функции? В коде 1 внешняя функция возвращает внутреннюю функцию и внтр. функция имеет доступ к переменным из внешней функции. В коде 2 функция имеет доступ к переменным, но не возвращается. Код 1 и 2 работают одинаково. # код 1 def func_1(): l = [1, 2, 3] def func_2(name): l.append(name) return l return func_2 f = func_1() print(f('a')) print(f('b')) print(f('c')) # код 2 def func_1(): l = [1, 2, 3] def func_2(name): l.append(name) return l print(func_2('a')) print(func_2('b')) print(func_2('c')) func_1()

19 Фев 2022 в 19:52
199 +1
1
Ответы
1

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

В случае кода 1 внешняя функция возвращает внутреннюю функцию, и следовательно, можно сохранить возвращенную функцию в переменную и вызывать ее по необходимости.

В случае кода 2, непосредственного возвращения внутренней функции нет, но сама внешняя функция func_1 не вызывается, и у внутренней функции func_2 есть доступ к переменным из func_1, что также является замыканием.

Таким образом, оба примера демонстрируют возможность использования замыкания в Python.

16 Апр в 19:21
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 333 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир