闭包

岁酱吖の 提交于 2019-11-27 21:56:22

闭包

如果在一个函数的内部,定义了另一个函数。外部的函数叫外函数,内部的函数叫内函数。

闭包条件

  1. 在一个外函数中定义了一个内函数
  2. 内函数运用了外函数的临时变量
  3. 外函数的返回值是内函数的引用

一般情况下,如果一个函数结束,函数内部所有的东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束时发现有自己的临时变量将来会在内函数中用到,就把这个临时变量绑定给内函数,然后自己再结束

# line_6是外函数,k和b是外函数的临时变量
def line_6(k, b):
    # create_y是内函数
    def create_y(x):
        # 在内函数中用到了外函数的临时变量
        print(k * x + b)
    # 外函数的返回值是内函数的引用
    return create_y


line_6_1 = line_6(1, 2)
line_6_1(0)
line_6_1(1)
line_6_1(2)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!