python闭包

从表现形式上定义为:如果在一个内部函数如下面代码中的funY函数对其外部作用域funX函数进行变量(x)引用,那么我们说这个内部函数funY就是一个闭包.

def funX(x):    
    def funY(y):
        return x * y
    return funY

上面函数 funX的返回值为一个function对象,可以以funX(8)(5)这种方式调用.
注意:与在函数里引用全局变量时需要加关键字global一样,在内部函数里要引用外部函数的变量我们则使用nolocal关键字.

def funX():
    x = 25
    def funY():
        nolocal x
        x += 1
        return x
    return funY()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作用域 在理解闭包前,先看一个函数: 可以看到func()函数内部的变量无法在函数外部使用 全局变量out_fun...
    XYZeroing阅读 953评论 0 10
  • 项目地址:https://git.io/pytips 闭包(Closure) 在计算机科学中,闭包(英语:Clos...
    蛙声一爿阅读 596评论 0 5
  • 我在博客中曾经介绍过两篇关于函数的文章,第一篇是 关于 Python 函数是第一类对象,第二篇是关于 Lambda...
    liuzhijun阅读 1,549评论 2 27
  • 转载自https://serholiu.com/python-closures了解闭包前,先了解一下变量作用域看个...
    第八共同体阅读 256评论 0 0
  • 什么是闭包? 简单说,闭包就是根据不同的配置信息得到不同的结果 再来看看专业的解释:闭包(Closure)是词法闭...
    chen_000阅读 152评论 0 0