深入理解Python的作用域、命名空间与模块
1. 命名空间和作用域
在Python中,命名空间(namespace)和作用域(scope)是理解变量生命周期和可见性的关键概念。命名空间是Python中用于存储变量名及其对应对象的映射。作用域则定义了在特定区域中可以访问哪些变量。Python遵循LEGB规则来决定变量的查找顺序,即局部(Local)、封闭(Enclosing)、全局(Global)和内置(Built-in)。
1.1 LEGB规则详解
LEGB规则决定了Python在查找变量时的顺序:
- L(Local) :首先在当前函数的局部作用域中查找。
- E(Enclosing) :如果不在局部作用域中找到,则在任何封闭的函数中查找。
- G(Global) :接着在全局作用域中查找。
- B(Built-in) :最后在内置作用域中查找。
示例:LEGB规则的实际应用
x = 42 # 全局变量
def afun():
global x
x = 7 # 修改全局变量
print(x)
afun()
print(x) # 输出 7,因为全局变量已被修改
1.2 局部作用域
局部作用域是指在函数内部定义的变量。这些变量
超级会员免费看
订阅专栏 解锁全文
2856

被折叠的 条评论
为什么被折叠?



