什么是闭包

给出字面的定义先:闭包是由函数及其相关的引用环境组合而成的实体

函数可以作为另一个函数的参数或返回值,可以赋给一个变量。函数可 以嵌套定义,即在一个函数内部可以定义另一个函数,有了嵌套函数这种结构,便会产生闭包问题。

 

所以,在函数的嵌套里面,如:

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
posted @ 2019-01-09 23:02  yjy888  阅读(139)  评论(0编辑  收藏  举报