Python中LEGB规则 变量查找顺序Local/Enclosing/Global/Builtin详解

python中变量的查找顺序是legb规则。具体来说,1. local:函数内部定义的变量优先被使用,若未赋值前引用会报错;2. enclosing:嵌套函数外层作用域变量可访问,修改需用nonlocal;3. global:模块层级的全局变量,跨模块不可见;4. builtin:内置作用域,包含内置函数和变量,避免覆盖。合理使用作用域和声明关键字能有效避免错误。

在Python中,变量的查找顺序是按照LEGB规则来执行的。简单来说,就是当你在代码中使用一个变量时,Python会按照 Local → Enclosing → Global → Builtin 这个顺序去查找这个变量的值。

这听起来好像挺简单的,但实际写代码的时候,特别是函数嵌套、模块导入混在一起时,很容易出错。下面我们就从几个常见的场景出发,看看LEGB到底是怎么起作用的。


Local:局部作用域优先

Local指的就是函数内部定义的作用域。只要你在一个函数里面用 = 给变量赋值(除非特别说明是global或nonlocal),它就会被认为是局部变量。

举个例子:

立即学习“Python免费学习笔记(深入)”;

def func():    x = 10    print(x)func()

登录后复制

文章来自互联网,不代表电脑知识网立场。发布者:,转载请注明出处:https://www.pcxun.com/n/714472.html

(0)
上一篇 2025-06-08 19:35
下一篇 2025-06-08 19:35

相关推荐