简单来说就是函数外部调用函数内部的嵌套函数
def func():
a = 100
def inner():
b = 99
print(a, b)
return inner
sss = func()
sss()
作用就是获取func()中的a,当然直接return a也可以拿到,所以不常用。
同时闭包也可以同级之间调用
def func():
a = 100
def inner():
b = 99
print(a, b)
def inner2():
inner()
return inner2
sss = func()
sss()
实际工作不常用,考试面试总出现,类似这种
def func(m,n):
def inner():
b = 99
print(m,n,b)
return inner
sss = func(8,5)
sss2 = func(81,5)
sss2()
sss()
判断m,n的值是否变化,闭包状态是有保存的,所以结果是
81,5,99
8,5,99