OOP中闭包属性背后的逻辑是什么?

我对面向对象编程语言中的闭包概念感到怀疑。因此,按照定义,闭包是内部函数可以访问自由变量(在外部函数中创建的变量)的概念。

我想知道,为什么内部函数具有此属性?面向对象编程语言的功能背后的逻辑是什么?

附言我正在用Python学习OOP ... 如果有人有任何想法,请帮助:) 谢谢