Python中作用域指的是程序中变量所存在的区域,当我们在Python程序中定义了一个变量,这个变量只能在某些地方被访问和使用。Python中作用域分为四个层次:Local、Enclosing、Global和Built-in。Python变量在作用域使用有以下几个方面:
1.不同作用域相同变量名
Python函数内外使用同一名称的变量时,实际上是两个不同的变量。函数内变量是局部变量,只作用于函数内部,而函数外变量是全局变量,它的作用范围是整个程序。如果函数内部想修改全局变量,需要先用global关键字声明变量。
2.局部变量和全局变量的覆盖关系
当局部变量和全局变量的变量名相同时,函数内使用变量时会使用局部变量。如果需要访问全局变量,可以使用global关键字声明变量。
3.在闭包内修改变量
Python中闭包就是有调用外部函数的作用域的函数。内部函数可以对外部函数的变量进行修改或赋值,但是要使用nonlocal声明变量才行。
4.全局变量的修改
在Python中,如果想修改全局变量,需要在函数内部使用global关键字声明该变量。否则,Python会认为在函数内部又定义了一个新的局部变量,而不是修改全局变量。