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

浙公网安备 33010602011771号