Найти в Дзене
Future People

Что такое замыкания в Python?

Замыкания в Python — это концепция из области функционального программирования. Замыкание происходит, когда внутренняя функция запоминает состояние своего лексического контекста в момент её создания, даже если внешняя функция, в которой она была объявлена, уже завершила свою работу.

Это означает, что внутренняя функция имеет доступ к переменным и именам в своем области видимости, когда она определяется, и может использовать эти переменные, даже после того, как область видимости, в которой она была создана, перестает существовать.

Основные характеристики замыкания:

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

Есть функция outer_func, которая принимает два аргумента - x,y. Внутри outer_func определим функцию inner_func и попробуем получить доступ к переменным из outer_func. Из этого примера мы видим, что внутренняя функция inner_func имеет доступ и к аргументам и переменным внешней функции outer_func. inner_func является замыканием.

x=3, y=7 from outer_func 
a=6, b=14, c=1000 from outer_func
z=1020 from inner_func
x=3, y=7 from outer_func a=6, b=14, c=1000 from outer_func z=1020 from inner_func

Если вы интересуетесь программированием, то напоминаю о нашем курсе по основам программирования Python [START]. В нем много анимации, примеров и разборов домашних заданий. Присоединяйтесь! Ссылка:

Онлайн-курс Python START