`
swingfly
  • 浏览: 53575 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Python的变量名解析机制

阅读更多

Python的变量名解机制有时称为LEGB法则,这也是由作用域的命令而来的。

  • 当在函数中使用未认证的变量名时,Python搜索4个作用域【本地作用域(L),之后是上一层结构中的def或lambda的本地作用域(E),之后是全局作用域(G),最后是内置作用域(B)】并且在第一次能够找到这个变量名的地方停下来。如果变量名在这个搜索中没有找到,Python回报错。
  • 当在函数中给一个变量名赋值时(而不是在一个表达式中对其进行引用),Python总是创建或改变本地作用域的变量,除非它已经在那个函数中声明为全局变量。
  • 当在函数之外给一个变量名赋值时(也就是,在一个模块文件的顶层,或者是在交互提示模式下),本地作用域与全局作用域(这个模块的命名空间)是相同的。
分享到:
评论

相关推荐

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

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

    Python语法垃圾回收机制原理解析

    当一个变量值不再有变量名引用时,它就成为了“垃圾”,需要被回收。如果不对这些无用的内存进行回收,可能会导致内存耗尽,引发内存溢出,最终可能导致程序崩溃。 2. 垃圾回收机制: 垃圾回收机制(GC)是Python...

    Pyc文件解析

    Pyc 文件是 Python 的编译结果,包含了编译后的字节码、常量值、字符串、局部变量名、自由变量名、cell 变量名、文件名、函数名等信息。这些信息是 Python 运行时所需的静态信息。Pyc 文件可以被 Python 的虚拟机...

    一组用于处理AUTOSARXML文件的python模块_Python_下载.zip

    4. **Python模块**:在Python中,模块是包含一系列函数、类和变量的文件。压缩包中的“autosar-master”很可能是一个包含多个Python模块的文件夹,每个模块负责不同的功能,如XML解析、数据模型表示、数据转换等。 ...

    编程(完整版)Python题库word练习.doc

    3. Python变量名必须以字母或下划线开头,不能包含除下划线外的特殊字符。因此,A.a/b 和 D.a-b 都是非法的,而 C.a+b 也不能用作变量名,因为它包含加号。B.ab 是合法的变量名。 4. 表达区间在Python中通常...

    java2python--java代码转python工具

    例如,Java是一种静态类型的语言,要求在声明变量时指定类型,而Python则是动态类型的,变量的类型是在运行时确定的。Java使用类和对象来组织代码,而Python则支持多种面向对象的特性,包括类、对象、以及函数式编程...

    python考试题目及答案-python期末考试试题汇总.doc

    第14题中,合法标识符规则被考察,`num_1`是合法的Python变量名;第23题中,`isalnum()`方法检查字符串是否全由字母数字组成;第34题中,`strip()`方法用于移除字符串两侧指定字符;第43题中,`strip()`同样用于去除...

    Python精通经典书籍荟萃

    最后,"Python源码剖析"则是对Python解释器内部工作机制的深度解析。这书帮助读者理解Python的执行机制,如字节码、垃圾回收、对象模型等,对于想要成为Python高手或者进行Python性能优化的开发者来说,这是一本不可...

    Python源码剖析笔记

    Python函数的实现涉及到函数对象的创建、参数的处理、局部变量的管理等机制。 #### 类机制 Python中的类机制允许程序员定义自己的数据类型。类的定义涉及到属性、方法、继承、多态和封装等面向对象的基本概念。...

    Python-基础习题(300题).pdf

    14. 变量名的第一个字符必须是字母或下划线,不能是数字。答案:D。 15. 为了使程序进入死循环,`while`条件应该始终为真,因此将`while z > 1:`改为`while z >= 1:`即可。答案:C。 此外,Python的数据类型包括...

    python 大神学习笔记

    命名规则指出了Python中的命名习惯,比如变量名和函数名的命名方式。赋值部分讲解了Python中的变量赋值以及多重赋值的用法。运算符章节涵盖了Python中的算术运算符、比较运算符、逻辑运算符等。类型转换指出了如何在...

    python internal

    词法分析器负责识别源代码中的各种元素,如变量名、数字、运算符等,并将它们转换为相应的标记。例如,在上面的代码片段中,“import”、“sys”、“passwd”、“==”等都会被识别为不同的标记。词法分析器的工作是...

    python学习笔记

    共享引用的概念在这里非常重要,即多个变量名可以同时引用同一个对象。在这个情况下,对对象进行的任何原地修改都会反映在所有引用了该对象的变量上。 Python的多态是建立在其动态类型和对象系统的特性上的。多态...

    Python-用于Python调试的友好tracebacks

    Python的默认调试机制是通过`try/except`块捕获异常,并使用`traceback`模块来打印堆栈跟踪信息。这些跟踪信息虽然包含了错误发生的上下文,但对于新手开发者来说可能难以理解和解析。 2. **友好tracebacks的重要...

    Python 学习笔记 第二版.pdf

    - **名字空间**:Python中的名字空间是指存储变量名及其对应值的数据结构。它确保了Python程序中的标识符是唯一的。Python有三种类型的名字空间:全局名字空间、局部名字空间和内置名字空间。 - **内存管理**:...

    Python-RustPython一个用Rust编写的Python解释器

    1. **解析器**:RustPython的解析器负责将Python源代码转换成AST,这是执行的第一步。Rust的灵活性使得解析过程可以高效且准确地进行。 2. **AST**:抽象语法树是源代码的中间表示,每个节点代表源代码中的一个语法...

    Python-用Python编写的简约InstagramScraper

    在这个项目中,你需要理解Python的基本语法,如变量、条件语句、循环、函数和模块的使用。 2. **网络爬虫原理**:网络爬虫是自动遍历互联网并抓取信息的程序。它通过模拟浏览器发送HTTP请求,接收服务器响应,解析...

Global site tag (gtag.js) - Google Analytics