作用域在定义函数时就已经固定住了,不会随着调用位置的改变而改变。
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()()() 执行效果一样。