Python中变量的解析遵循LEGB原则,即作用域的查找顺序如下:
L (Local):当前函数内部定义的局部变量。
E (Enclosing):包含当前函数的外部函数中定义的变量。
G (Global):模块(文件)级别定义的全局变量。
B (Built-in):Python内置的函数和异常名称。
当引用一个变量时,Python会按照LEGB的顺序进行查找,一旦在某个作用域中找到变量,就会停止搜索。需要注意的是,如果使用了`nonlocal`关键字,变量的解析将不会遵循LEGB原则,而是遵循非局部作用域的规则。