-
闭包
在函数中提出的概念,函数里有内部函数,通过return扔出来
-
条件
外部函数中定义了内部函数
外部函数有返回值
返回值是内部函数名(不加括号)
内部函数引用了外部函数的变量
格式
def 外部函数()
...
def 内部函数
...
return 内部函数
X = 外部函数()
X()
-
应用
能够保存返回闭包时的状态,不受外部参数改变影响
会为变量开辟新的内存空间
用来保存数据状态
可以同级调用
-
例子
def generate_count(): container = [0] def add_one(): container[0] = container[0] + 1 print('第{}次'.format(container[0])) return add_one counter = generate_count() counter() counter() counter() counter()