Ericbig 2020-07-19
1. 定义:在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包
def test(number): print(‘----1----‘) def test_in(): print(‘----2----‘) print(number+100) print(‘----3----‘) return rest_in ret = rest(100) ret()
ret 指向函数内部定义的函数 test_in,原来的 number 还用原来传入的值。
2. 闭包的应用
def line_conf(a,b): def line(x): return a*x+b return line line1 = line_conf(1,1) line2 = line_conf(4,5) print(line1(5)) print(line2(5))
以上的应用,外层相当于定义一个二元一次方程,内层传一个横坐标,返回纵坐标。
line(2) 之后再用 line(1),函数没有被销毁。