Python 变量的作用域主要分为四种:局部作用域(Local)、嵌套作用域(Enclosing)、全局作用域(Global)和内置作用域(Built-in)。
-
局部作用域(Local):在函数内部定义的变量具有局部作用域,它们只能在其被声明的函数内部访问。函数执行结束后,局部变量会被销毁。
-
嵌套作用域(Enclosing):当一个函数位于另一个函数内部时,外部函数的局部变量可以被内部函数访问。这些变量位于嵌套作用域。嵌套作用域仅在嵌套的函数内部有效。
-
全局作用域(Global):在模块(脚本文件)层级定义的变量具有全局作用域,它们可以在整个模块内访问。如果需要在函数内部修改全局变量,需要使用
global
关键字声明。 -
内置作用域(Built-in):Python 自带了许多内置函数和变量,如
print()
和len()
等。这些内置函数和变量位于内置作用域,可以在任何地方访问。
Python 解释器在查找变量时,会按照 LGEB 的顺序进行查找:Local -> Enclosing -> Global -> Built-in。