闭包是什么?简单来说,就是一个函数A中包含另一个函数B,函数B中用到了函数A中的变量
def test(a):
def test_in(b):
print('in test_in 函数, b is %d' % b)
return a+b
return test_in
ret = test(20)
print(ret(100))
print(ret(200))
>>>
in test_in 函数, number_in is 100
120
in test_in 函数, number_in is 200
220
这里a是20,b是100或200,ret其实就是相当于test_in
怎么样,闭包还是很容易理解吧
理解闭包的形式主要因为后面的 装饰器 的使用基础就是闭包,装饰器是一个非常重要的功能
而且工厂函数也是闭包的一个应用,这个后续会再讲