闭包的作用:
可以用来在一个函数与一组私有变量(自由变量)之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量(自由变量)能够保持其持久性(保存运行环境与变量的状态)
闭包的特征:
- 必须要有函数的嵌套,而且外层函数必须返回内层函数;
- 外层函数相当于给内层函数提供了一个包装起来的运行环境,在这个包装的运行环境里面,内层函数可完全自己掌握自由变量的值,且该自由变量的值能够保持其持久性;
- 内层函数一定要用到外层函数中定义的自由变量。
代码示例
# written by @MMiL
# 2024.10.27
func_list=[]
for ii,jj in [(1,3),(4,7)]:
# closure 主体代码
def deco(ii): # ii 通过参数传入后变成了my_add的自由变量
b=jj # b=jj,也是自由变量,闭包必须存在自由变量才有意义
def my_add(a):
print(f"\nb={b}")