给出字面的定义先:闭包是由函数及其相关的引用环境组合而成的实体
函数可以作为另一个函数的参数或返回值,可以赋给一个变量。函数可 以嵌套定义,即在一个函数内部可以定义另一个函数,有了嵌套函数这种结构,便会产生闭包问题。
所以,在函数的嵌套里面,如:
def ExFunc(n):
sum=n
def InsFunc():
return sum+1
return InsFunc
insFunc对外部作用域的变量进行了引用,我们就认为里面的这个insFunc是闭包的
注意!!!!闭包中是不能修改外部作用域的局部变量的
>>> def foo(): ... m = 0 ... def foo1(): ... m = 1 ... print m ... ... print m ... foo1() ... print m ... >>> foo() 0 1 0
https://www.cnblogs.com/JohnABC/p/4076855.html