函数工厂中变量的范围
我想知道下面的Python代码片段中的变量a
的范围,
# ============================
def get_plotter():
def get_a():
return a
a = 3.14
return get_a
# ============================
if __name__ == '__main__':
f = get_plotter()
print f()
# ============================
输出为3.14
,但看代码我本来期望a
尽快走出去的范围为get_plotter()
终止,有效地留下一个不确定的东西。
这仅仅是打印在这里的易失性存储器内容吗? 这是怎么回事?
这是因为关闭,或“附带数据的功能”,并在此处进行了解释
https://stackoverflow.com/a/141426/735204
链接地址: http://www.djcxy.com/p/51125.html