笔记:闭包

闭包

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

闭包条件

  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)

posted @ 2019-08-19 20:15  大胡子哥dhzg  Views(105)  Comments(0)    收藏  举报