`
kanpiaoxue
  • 浏览: 1777620 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Python变量名解析:LEGB原则

 
阅读更多

---- 来源于《Python学习手册》Page 419

Python的变量名解析机制称为:LEGB法则。L:本地作用域;E:上一层结构中def或lambda的本地作用域;G:全局作用域;B:内置作用域

LEGB作用域查找原则:当引用一个变量时,Python按以下顺序依次进行查找:从本地变量中,在任意上层函数的作用域,在全局作用域,最后在内置作用域中查找。第一个能够完成查找的就算成功。变量在代码中被赋值的位置通常就决定了它的作用域。在Python3.0中,nonlocal声明也可以迫使名称映射到函数内部的作用域中,而不管是否对其赋值。

这些规则仅对简单的变量名有效。

分享到:
评论

相关推荐

    Python基础学习-10作用域

    函数高级部分:作用域 本节课知识点: • 什么叫作用域 • 作用域的变量名解析: LEGB原则 • 3种不同的作用域描述 • global语句 • nonlocal语句

    python中变量作用域及嵌套作用域.pdf

    Python 的变量名解析机制也称为 LEGB 法则,具体如下:当在函数中使用未确定的变量名时,Python 搜索四个作用域:本地作用域(L),之后是上一层嵌套结构中 def 或 lambda 的本地作用域(E),之后是全局作用域(G)...

    Python变量作用域LEGB用法解析

    Python变量作用域是编程中一个重要的概念,它决定了变量在哪些范围内可以被访问。LEGB法则,即Local(局部)、Enclosed(嵌套)、Global(全局)、Built-in(内置)四种作用域,是Python中变量查找的顺序规则。理解...

    基于Python函数和变量名解析

    Python函数和变量名解析是编程过程中非常基础但至关重要的概念,它们构成了Python代码的基本结构和逻辑。在这篇文章中,我们将深入探讨这两个主题。 首先,让我们来看看Python中的函数。函数是可重复使用的代码块,...

    详解Python函数作用域的LEGB顺序

    通过理解LEGB规则,我们可以更好地管理代码中的变量,避免变量名冲突,以及更有效地利用闭包等高级特性。在实际编程中,遵循这一规则能帮助我们写出更加健壮和易于维护的Python代码。希望这些解释和示例有助于你理解...

    有用的函数、教程和其他与 Python 相关的东西.zip

    [ IPython nb ]Python 的变量名范围解析和 LEGB 规则 [ IPython nb ]Python 2.x 和 Python 3.x 之间的主要区别 [ IPython nb ]Python 中 SQLite 数据库操作详解 [ Markdown ]Python 中的单元测试 - 为什么我们要养成...

    Python 基础课程《13.变量的使用进阶》

    当解析器遇到一个变量名时,它会按照以下顺序进行查找: 1. **局部作用域**:当前函数内部定义的变量。 2. **嵌套作用域**:如果在当前函数内部又定义了其他函数,则这些函数中的变量构成嵌套作用域。 3. **全局...

    Python命名空间及作用域原理实例解析

    命名空间(Namespace)可以被看作是一个从名字到对象的映射,它决定了变量名如何关联到具体的对象。在Python中,大多数命名空间是通过字典数据结构实现的。Python的命名空间有三种主要类型:局部(Local)、全局...

    Python命名空间namespace及作用域原理解析

    命名空间可以想象为一个字典,它将名字(变量名)映射到对象(变量的值)。在Python中有三种主要的命名空间: 1. 局部命名空间(local namespace):这是函数内部的命名空间,包含了函数内的变量、参数和局部定义的...

    12步教你理解Python装饰器

    Python遵循LEGB规则(Local - Enclosing - Global - Built-in)解析变量。如果在函数内部引用变量,Python会先在局部作用域查找,找不到再查找封闭作用域(仅限于闭包),接着是全局作用域,最后是内置作用域。赋值...

    Python中的闭包和装饰器

    每个函数、类或模块都有自己的命名空间,它们之间的访问规则遵循LEGB(Local, Enclosing, Global, Built-in)原则。闭包涉及到的是嵌套函数中内外层命名空间的交互。 2. **闭包解析** 当一个内部函数引用了外部...

Global site tag (gtag.js) - Google Analytics