我正在研究cs61a中的材料,但是“2.4.4本地状态”中的“撤销”示例让我觉得即使在调用完成后Python仍然保持功能环境以便实现但它看起来太昂贵了。那么python实现闭包的机制是什么。
答案 0 :(得分:3)
定义返回内部函数的外部函数时:
def outer():
x = 40
def inner():
return x + 2
return inner
您可以访问外部函数的范围:
>>> func = outer()
>>> func()
42
x
的值存储在元组__closure__
:
>>> func.__closure__[0].cell_contents
40