Python 基础:作用域 LEGB 模型
作者:野牛程序员:2025-12-22 10:41:02python阅读 2008
Python 基础:作用域 LEGB 模型
# /*
# Python 基础:作用域 LEGB 模型
# --------------------------------------------------------
# Python 在查找变量时,遵循固定的 LEGB 顺序:
#
# L → Local :当前函数或代码块的局部作用域
# E → Enclosing :外层函数的作用域(闭包)
# G → Global :当前模块的全局作用域
# B → Built-in :Python 内置作用域(如 len、print 等)
#
# 查找顺序:Local → Enclosing → Global → Built-in
# 只要在某一层找到变量,就会停止向外查找。
# */
print("示例:演示 LEGB 查找顺序\n")
x = "全局变量 G"
def outer():
x = "外层变量 E"
def inner():
x = "局部变量 L"
print("inner 输出:", x) # L 局部优先
inner()
print("outer 输出:", x) # E 外层作用域
outer()
print("全局输出:", x) # G 全局作用域
# --------------------------------------------------------
# 要点总结:
# 1) LEGB 顺序决定变量查找路径;
# 2) Local 局部变量优先级最高;
# 3) Enclosing 是闭包中的外层函数变量;
# 4) Global 是当前模块定义的变量;
# 5) Built-in 是 Python 自带的内置命名空间。
# */
#
#
# 示例:演示 LEGB 查找顺序
#
# inner 输出: 局部变量 L
# outer 输出: 外层变量 E
# 全局输出: 全局变量 G野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

