函数工厂中变量的范围

我想知道下面的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

上一篇: Scope of variables in function factories

下一篇: Understanding Self Internally in Python