在Python中,变量的作用域决定了变量可以被访问的范围。Python主要有以下几种作用域:
1. LEGB规则(Local, Enclosing, Global, Built-in)
Python使用LEGB规则来查找变量。这个规则按照以下顺序查找变量:
- L(Local):局部作用域,指当前函数或代码块中定义的变量。
- E(Enclosing):嵌套作用域,指外部函数(包含当前函数)的作用域中定义的变量。它是函数嵌套时的外部环境。
- G(Global):全局作用域,指模块级别上定义的变量。
- B(Built-in):内置作用域,指Python解释器提供的内置函数和异常等(比如
print()
,len()
,max()
等)。
2. 作用域示例
x = 10 # 全局作用域
def outer():
y = 20 # 外部函数的局部作用域
def inner(