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

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

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

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

Напишите функцию удаления дубликатов из списка с сохранением порядка