闭包
如果在一个函数的内部,定义了另一个函数。外部的函数叫外函数,内部的函数叫内函数。
闭包条件
- 在一个外函数中定义了一个内函数
- 内函数运用了外函数的临时变量
- 外函数的返回值是内函数的引用
一般情况下,如果一个函数结束,函数内部所有的东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束时发现有自己的临时变量将来会在内函数中用到,就把这个临时变量绑定给内函数,然后自己再结束
# 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)