Python 的 LEGB 作用域

在 Python 中,LEGB 代表四种作用域类型,优先级从高到低为:

  1. L(Local,局部作用域)
    函数内部定义的变量(包括函数参数),仅在当前函数内可见。
    例:def func(): x = 10 中,x 是局部整数。

  2. E(Enclosing,嵌套作用域)
    外层嵌套函数中定义的变量,对内部嵌套函数可见。
    例:

    def outer():
        x = 20  # 嵌套作用域的整数
        def inner():
            print(x)  # 可访问 outer() 中的 x
    
  3. G(Global,全局作用域)
    模块(文件)级别定义的变量,在整个模块内可见(需用 global 声明在函数内修改)。
    例:x = 30(文件顶层定义),是全局整数。

  4. B(Built-in,内置作用域)
    Python 解释器预定义的变量/常量(如 TrueFalseNone),属于内置命名空间。

总结:一个整数属于 LEGB 中的哪个位置,完全由它在代码中被定义的位置决定,而非整数类型本身的特性。

posted @ 2025-10-06 11:33  wangya216  阅读(30)  评论(0)    收藏  举报