Замыкание (closure) в Python — это функция, которая сохраняет доступ к переменным из своей лексической области видимости, даже когда внешняя функция завершила выполнение. Это мощный инструмент функционального программирования, позволяющий создавать функции с "памятью" о среде, в которой они были созданы. 1. Вложенная функция 2. Доступ к переменным из внешней области видимости 3. Возврат вложенной функции как объекта def outer_function(message): ....def inner_function(): ........print(message) ....return inner_function closure = outer_function("Привет, мир!") closure() # Вывод: Привет, мир! Здесь inner_function запоминает переменную message даже после завершения outer_function. 1. Вложенность функций: Одна функция должна быть определена внутри другой 2. Захват переменных: Вложенная функция должна использовать переменные из внешней области 3. Возврат функции: Внешняя функция возвращает вложенную как объект def counter(): ....count = 0 ....def increment(): ........nonlocal count .......