美文网首页
Python-闭包

Python-闭包

作者: 冲锋丘丘人 | 来源:发表于2019-08-19 16:44 被阅读0次

闭包的理解

我们可以将闭包理解为一种特殊的函数,这种函数由两个函数的嵌套组成,且称之为外函数和内函数,外函数返回值是内函数的引用,此时就构成了闭包。

闭包的格式

下面用代码展示闭包的一般格式

def 外层函数(参数):
    def 内层函数():
        print("内层函数执行", 参数)

    return 内层函数

内层函数的引用 = 外层函数("传入参数")
内层函数的引用()
外层函数中的参数,不一定要有,据情况而定,但是一般情况下都会有并在内函数中使用到

栗子

def func(a, b):
    def line(x):
        return a * x - b
    return line
line = func(2, 3)
print(line(5))

结果得到 7
在这个案例中,外函数func有接收参数 a=2,b=3,内函数line接收参数x=5,在内函数体中计算了a*x-b 即 2×5-3的值作为返回值,外函数返回内函数的引用,这里的引用指的是内函数line在内存中的起始地址,最终调用内函数line()得到返回值7。
一般在函数结束时,会释放临时变量,但在闭包中,由于外函数的临时变量在内函数中用到,此时外函数会把临时变量与内函数绑定到一起,这样虽然外函数结束了,但调用内函数时依旧能够使用临时变量,即闭包外层的参数可以在内存中进行保留。

闭包的用途

Python中,闭包的主要用途就是用于装饰器的实现
传送门

相关文章

  • python-闭包

    函数里面的函数不被执行,返回了内部函数的引用。 ret(200), # 300传当前的值,可以计算 闭包的应用 如...

  • Python-闭包

    0. 函数相关知识 1)Python中“一切皆对象”,函数也不例外 先定义一个函数: def func(): p...

  • Python-闭包

    闭包的理解 我们可以将闭包理解为一种特殊的函数,这种函数由两个函数的嵌套组成,且称之为外函数和内函数,外函数返回值...

  • Python-闭包

    当函数调用完,函数内定义的,但是我们有时候需要,每次在这个变量的基础上完成一系列操作,比如:每次在这个变量的基础上...

  • python-闭包和装饰器

    https://www.zhihu.com/question/25950466/answer/31731502 代...

  • Python-闭包和修饰器

    作用域 闭包 code: 装饰器 code: 装饰器案例 code:

  • swift-闭包

    闭包 闭包定义 闭包简化 - 尾随闭包 闭包参数 闭包返回值 闭包的循环引用

  • 闭包,闭包,闭包

    1、这家伙到底是什么? 网上关于这个的讨论的太多了太多了,有各种的举例子,但是大部分还在寻找这个答案的小伙伴对于变...

  • 闭包-Closures [swift 5.1]

    闭包的语法 尾随闭包 闭包逃离 自动闭包

  • Day7 闭包(Closures)

    本页包含内容:• 闭包表达式• 尾随闭包• 值捕获• 闭包是引用类型• 逃逸闭包• 自动闭包 1、闭包表达式 闭包...

网友评论

      本文标题:Python-闭包

      本文链接:https://www.haomeiwen.com/subject/mqlesctx.html