Python中的作用域共有3种,分别是:
- 局部作用域:这是在一个函数内部定义的变量;
- 闭包作用域:这是在一个函数外部另一个函数内部定义的变量;
- 全局作用域:在所有函数外定义的变量。
对于各作用域中对变量的访问与修改:
- 各个局部作用域是相互独立的,其中的变量是无法相互访问的,但是可以访问全局作用域里的变量,但是对于全局变量的修改,需要在局部作用域里用关键字
global
提前声明,以表明该变量是全局变量,否则相当于在局部作用域里创建了和全局变量相同名字的局部变量; - 在一个闭包函数形成的局部作用域中,可以访问其上级的闭包作用域里的变量,也可以修改其上级闭包作用域里的变量,但是修改的话,需要在局部作用域里用关键字
nonlocal
提前声明,以表明该变量不是局部变量,而是闭包作用域里的变量。