python函数嵌套笔记

关于函数内嵌函数作用域的笔记:

def test():
    i=0
    def a():
        print locals()
    a()
    print i
 
test()

这段,locals()的值为空,说明内嵌的a函数没有默认引入i

def test():
    i=0
    def a():
        print locals()
        print i
    a()
    print i
 
test()

这段,locals()有了i的字典,说明解释器自动引入了i

def test():
    i=0
    def a():
        i+=1
        print locals()
        print i
    a()
    print i
 
test()

这段出错,提示i引用在了i声明之前

内部函数可以引用外部函数变量,暂时没找到修改外部函数变量值方法

posted @ 2013-03-12 14:29  zephor  阅读(1182)  评论(0)    收藏  举报