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