若是在一个内部函数里,对在外部函数内(但不是在全局做用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。闭包
定义在外部函数内但由内部函数引用或者使用的变量称为自由变量。函数
>>> def foo():
... m = 1
... def bar():
... m = 2
... return m
... print m
... return bar()
...
>>> print foo()
1spa
2作用域
结论:内部函数中对变量的操做不会对外部函数中的值产生影响,便可以使用但不能够修改外部变量的值。
变量