理解 Python 闭包的怪异之处

2024-06-17

这篇文章分析了一个 Python 闭包的特殊现象:在一个循环中定义并返回闭包函数,如果立即调用这些闭包,返回值会随着循环递增;但如果先收集所有闭包,最后再调用,则返回值都将是循环结束时的最终值。这是因为所有闭包都共享同一个外部变量,而闭包捕获的是变量的引用而非值。文章进一步解释了“立即调用”和“稍后调用”的区别,以及这种区别导致的结果差异。

未分类 闭包