闭包概念: 将函数和环境变量打包在了个封闭的“包”内,外部改变环境变量不会生效。

    1. # 闭包的概念
    2. def f1():
    3. #环境变量a
    4. a=30
    5. #f2为 和a一起封闭的函数
    6. def f2(x):
    7. return a*x
    8. #此时将环境变量和f2函数都返回过来
    9. return f2
    10. #此处的10不能更改f1函数里的a值
    11. a=10
    12. result=f1()
    13. print(result.__closure__[0].cell_contents) #输出30,为环境变量值
    14. print(result(2)) # 输出为60

    环境变量一定要在定义函数的外部,并且不能是全局变量

    闭包的作用
    如果是全局变量,那么很多地方可以修改他,导致值变化了。
    所有操作都局限于函数的内部