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