Python变量的作用域可以分为以下四种:
局部作用域 (Local)
定义在函数内部,仅在该函数内部可见。
函数执行结束后,局部变量会被销毁。
嵌套作用域 (Enclosing)
当一个函数位于另一个函数内部时,外部函数的局部变量可以被内部函数访问。
这些变量位于嵌套作用域,仅在该嵌套函数内部有效。
全局作用域 (Global)
定义在模块(脚本文件)层级,可以在整个模块内访问。
如果需要在函数内部修改全局变量,需要使用 `global` 关键字声明。
内置作用域 (Built-in)
包含Python语言内建的关键字和函数,如 `int`, `str`, `list` 等。
变量的查找顺序遵循 LEGB 规则,即:
L(Local):局部作用域
E(Enclosing):嵌套作用域
G(Global):全局作用域
B(Built-in):内置作用域
需要注意的是,局部作用域和嵌套作用域通常指的是同一个概念,即内部函数可以访问外部函数的局部变量。