Замыкания (Closures) в Python

Сегодня поговорим о такой интересной вещи как замыкания в Python. По сути замыкание - это внутренняя функция, которая возвращается из внешней и использует переменные из внешнего скоупа(которые ей не принадлежат). Функция как бы “замыкает“, захватывает переменные из внешней функции. Вы могли встречать такое например в декораторах. Каждый объект замыкания независим, они не пересекаются, у каждого свои данные. Замыкания это еще один шаг в сторону ООП, так как тут мы имеем некоторое состояние (данные) сокрытое от посторонних глаз и с которым можно взаимодействовать только с помощью заранее написанного интерфейса (функция). Замыкания могут быть полезны для того чтобы избегать использования global, а также и в других случаях, когда нам важно, чтобы наши данные не изменили невалидным способом, чтобы с данными работали только через нашу логику. НО(!) до этих данных тоже можно добраться при определенном желании, нужно понимать что нет полного сокрытия данных. Если есть непреодолимое желание и возможность поддержа
Back to Top