作用域在定义函数时就已经固定住了,不会随着调用位置的改变而改变。
name = ‘ring-A‘
def foo():
    name = ‘ring-B‘
    def bar():
        name = ‘ring-C‘
        def tt():
            print(name)
        return tt
    return bar
func = foo()
print(func)
f = func()
print(f)
f()
# func()()
#foo()()()
在这里, f() 执行与 func()() , foo()()() 执行效果一样。
原文:http://www.cnblogs.com/freelandun/p/7113541.html