一、概念
在函数嵌套的前提下,内层函数引用外层函数的变量(包括参数),外层函数又把内层函数当做返回值进行返回。
这个内层函数+所引用的外层变量称为 “闭包”
def test(): # 外层函数
a= 33 # 外部变量
def test2(): # 内层函数
print(a)
return test2
newFunc = test()
print(newFunc()) # 33
二、标准格式
三、场景应用
外层函数,根据不同的参数,来生产不同作用功能的函数
举例:
**注意事项:
1、闭包中,若要修改引用的外层变量,需要使用 nonlocal变量 声明,否则当做是闭包内,新定义的变量(函数作用域)。
2、当闭包内,引用一个后期会发生变化的变量是,一定要注意**
函数,什么时候才会确定,内部变量标识,对应的值,当函数被调用的时候,才会真正的确定,对应的值,到底是什么,之前 都是以普通的标识名称而存在。
深入理解闭包。
#当函数执行调用的 i 生产的范围 1 2 3,不确定。当循环结束 i==3