每天开心一点

Python中的作用域,函数嵌套和闭包

2020-09-18 14:50:00    六月    665    转贴

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

https://www.cnblogs.com/eaoo/p/9488145.html

https://www.iteye.com/blog/yunjianfei-2186092