在 Python 中,闭包(Closure) 是一个非常重要且强大的概念。简单来说,闭包让一个函数能够“记住”并访问其定义时所在的外部作用域中的变量,即使那个外部作用域的函数已经执行结束了。 以下是关于 Python 闭包的详细解析: --- 1. 什么是闭包? 要形成一个闭包,必须同时满足以下 三个条件: 1. 嵌套函数:必须有一个嵌套在其他函数内部的函数(即:外部函数里面定义了内部函数)。 2. 引用外部变量:内部函数必须引用外部函数中定义的变量(非全局变量)。 3. 返回内部函数:外部函数必须返回内部函数的引用。 一句话总结:闭包 = 内部函数 + 定义时的环境(外部变量)。 --- 2. 基本示例 让我们看一个最经典的例子: 发生了什么? 当我们调用 时,外部函数执行完毕并返回了 函数。 通常情况下,函数执行完后,其局部变量(如 )会被销毁。 但在闭包中, 这个函数对象“携带”了 这个环境信息。即使 早就结束了, 依然记得 是 3。 --- 3. 查看闭包的内部 () Python 将闭包引用的外部变量存储在函数对象的 属性中。 这证明了变量 被保存在了一个特殊的“单元(...