闭包概念: 将函数和环境变量打包在了个封闭的“包”内,外部改变环境变量不会生效。
# 闭包的概念
def f1():
#环境变量a
a=30
#f2为 和a一起封闭的函数
def f2(x):
return a*x
#此时将环境变量和f2函数都返回过来
return f2
#此处的10不能更改f1函数里的a值
a=10
result=f1()
print(result.__closure__[0].cell_contents) #输出30,为环境变量值
print(result(2)) # 输出为60
环境变量一定要在定义函数的外部,并且不能是全局变量
闭包的作用
如果是全局变量,那么很多地方可以修改他,导致值变化了。
所有操作都局限于函数的内部