闭包

 内层函数对外层函数非全局变量的引用,叫做闭包。
 闭包的好处:如果python 检测到闭包,有一个机制,你的局部作用域不会随着函数的结束而结束。
 
 def weapper():
  name1='老男孩'  #=======
  def inner():  #中间部分叫闭包
   print(name1)
  inner()    #=======
 wrapper()
 
 #判断是否时闭包 __closure__ #返回 None 代表不是闭包

 def wrapper():
  name1 = '老男孩'
  def inner():
   print(name1)
  inner()
  print(inner.__closure__) #返回cell 是闭包
 wrapper()
 #返回结果
 老男孩
 (<cell at 0x00000211CB627498: str object at 0x00000211CB5FAAB0>,) #返回内存地址

posted on 2018-04-21 21:52  python21-李伟  阅读(104)  评论(0编辑  收藏  举报

导航