1、python 变量作用域
1、在函数内部定义的变量称为“局部变量”,只作用于函数内部,函数外无法调用。
2、在函数外定义的变量称为“全局变量”,作用于全局。
3、在局部想要更改全局变量,需要使用global
4、在内层函数想要更改外层函数变量,需要使用nonlocal
2、 函数嵌套
python是允许创建嵌套函数的,也就是说我们可以在函数内部定义一个函数,这些函数都遵循各自的作用域和生命周期规则。
3、闭包
Python支持一种特性叫做函数闭包(function closures):在非全局(global)作用域中定义inner函数(即嵌套函数)时,会记录下它的嵌套函数namespaces(嵌套函数作用域的locals),可以称作:定义时状态,可以通过func_closure 这个属性来获得inner函数的外层嵌套函数的namespaces。
参考: https://www.cnblogs.com/rcat/p/9313706.html