什么是閉包(3個(gè)條件)
- 函數(shù)A內(nèi)部存在一個(gè)函數(shù)B
- 函數(shù)B中使用了A的參數(shù)
- 函數(shù)A的返回值是B函數(shù)名
注意點(diǎn)
每次調(diào)用A(args...) 會(huì)生成一個(gè)新的閉包(下面的area互不受影響)
def rect_conf(a, b):
def area():
return a * b
return area
rect1 = rect_conf(5,6)
area1 = rect1()
print('area1 =',area1) # area1 = 30
rect2 = rect_conf(7,8)
area2 = rect2()
print('area2 =',area2) # area2 = 56
print('area1 =',area1) # area1 = 30
print('area =',rect_conf(10,10)()) # area = 100