在内部函数中对外部函数的变量进行引用(不使用nonlocal),则内部函数称为闭包
- 闭包存在于嵌套关系的函数中,
- 嵌套的内部函数引用了外部函数的变量
- 嵌套的外部函数将内部函数名作为返回值返回
闭包的作用就是在函数执行结束后,保持函数内的变量不被销毁
def pri(a):
def one():
return a
return one
p=pri('i love chian')
print(p) # p的返回值为函数名 one
print(p()) # p()就是 one()
# 执行p,结束返回one【参数a还在】
# 执行one(),结束返回a