Что такое closure (замыкание)?

Middle
268 просмотров
AFK Offer AI

Замыкание — функция, которая запоминает переменные из окружающего scope, даже когда этот scope завершился. Внутренняя функция «захватывает» переменные внешней. В Python замыкания захватывают по ссылке, не по значению — классическая ловушка с циклами: lambda в цикле захватит последнее значение переменной. Фикс: аргумент по умолчанию lambda x=x. Замыкания — основа декораторов, callback-ов, фабричных функций. Проверить: func.__closure__.

Следующий вопрос

Что такое Lock в threading?