什么是闭包(3个条件)
- 函数A内部存在一个函数B
- 函数B中使用了A的参数
- 函数A的返回值是B函数名
注意点
每次调用A(args...) 会生成一个新的闭包(下面的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
网友评论