闭包
闭包就是通过外层的函数给内层的函数传入超参数,来获得特定超参数的内层函数
In [1]: def line(a, b): # 生成了一个确定了ab的线性函数,结果只需要给x值就可以判断y值
...: def line(x):
...: return a*x + b
...: return line # 返回值为闭包,就是内层函数
In [2]: line1 = line(1, 1) # 用line1接受a=1,b=1的闭包函数
...: line2 = line(-1, 1) # 用line2接收a=1,b=-1的闭包函数
In [3]: line1(1)
Out[3]: 2
In [4]: line2(1)
Out[4]: 0
由于闭包函数引用了外部函数的变量,所以不能及时释放外部函数的内存