Python 闭包

闭包是 一个函数相关引用环境中的自由变量 组合的实体。

装饰器也是闭包,只是这个 自由变量是函数

def func(name):
    def inner_func(age):
        print 'name:', name, 'age:', age
    return inner_func

bb = func('the5fire')
bb(26)  # 

bb 称之为闭包函数,
func称之为闭包生产者,
bb被func包裹,且引用了外部环境的name变量

 def int_seq():
     i = 0
     def foo():
          nonlocal i
          i += 1
          return i
     return foo

a= foo()
a() 返回1,再次调用a()返回2,以此类推

这个a 称之为闭包函数,是一个处理逻辑函数加上外部i变量的组合实体

i的初始化值是在生产的一刻就确定的了

https://segmentfault.com/a/1190000004461404

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我在博客中曾经介绍过两篇关于函数的文章,第一篇是 关于 Python 函数是第一类对象,第二篇是关于 Lambda...
    liuzhijun阅读 1,627评论 2 27
  • 作用域 作用域是程序运行时变量可被访问的范围,定义在函数内的变量是局部变量,局部变量的作用范围只能是函数内部范围内...
    大川无敌阅读 387评论 0 0
  • 作用域 在理解闭包前,先看一个函数: 可以看到func()函数内部的变量无法在函数外部使用 全局变量out_fun...
    XYZeroing阅读 1,050评论 0 10
  • 什么是闭包? 简单说,闭包就是根据不同的配置信息得到不同的结果 再来看看专业的解释:闭包(Closure)是词法闭...
    chen_000阅读 213评论 0 0
  • 夜色渐浓 哀伤在心底流淌 城市的微光 催着人与人散场 桃花开了 一树繁华 又是一年四月天 世间再无你也再无程蝶衣 ...
    影半夏阅读 418评论 0 2

友情链接更多精彩内容