当前位置:首页python > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • Python 基础:作用域 LEGB 模型
  • 相关推荐

    最新推荐

    热门点击