闭包在Python中是一把双刃剑,在解决某些问题上面有提高效率的作用,但是若是理解不充分则容易出问题。
闭包的本质是函数在调用子函数的过程中的参数传递,即
def 函数A(x,y):
x=1
y=2
def 函数B(z):
print(x+y+z)
B(3)
返回 6
闭包即函数A调用了B,B引用了A的参数,A返回B的结果的形式,本质是函数A的局部参数供给函数B使用。
注意事项:
A的参数只能是参数,不能使用临时变量(i)
eg:
def 函数A(x,y):
x=1
y=2
for i in range(1,4):
def 函数B(z):
print(x+y+z+i)
B(3)
返回 9 9 9