尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Python执行流程和入口

Python执行流程和入口 先前我们将一些代码予以运行, 那是在配置解释器以及虚拟环境的进程当中, 然而, 在正式对语法展开介绍之前, 我打算介绍一下程序的结构。希望大家明白两个方面, 其一, 代码是如何去运行的, 其二, 脚本程序的起始点处于何处。如果你已经明白了这两点可以跳过这一篇文章。代码是怎么执行的执行流程解释器解析与编译只要你运行一个.py文件那时候解释器就像最为常见的那种会率先将工作接管过去, 这件事的要求是把你所写的代码转译成为更低级别的形式。词法分析, 其情形为, 解释器会和扫描仪模式相像这般去读取你所给出的源代码, 进而将其分割成一个个属于最微小的、具备意义的单元, 此单元有个称谓叫做标记, 也就是Token。举例来说, 诸如关键字if、变量名x、运算符、括号()这些都会被辨别成独立的标记。语法分析, 这种状况下呢, 解释器会去查验这些标记排列而成的状况是不是契合 的语法规则, 这恰似去核查一句话的语法是不是确实正确那样。这个进程会生成一棵抽象语法树, 也就是 Tree 这般的, AST, 这棵树能够清晰地展现出代码的结构以及层次关系。将其编译成字节码to), AST得以进一步被编译成字节码。字节码属于一种平台无关的、低级的指令集, 能够理解为是虚拟机的“机器语言”, 它比源代码更靠近机器码, 然而并非直接能够被CPU执行的机器码。这些字节码通常会被缓存至目录下的.pyc文件里, 如此一来下次运行同一个程序时要是源码未产生改动, 便能够直接加载字节码, 越过编译步骤, 提升启动速度。虚拟机PVM执行字节码。当生成字节码之后, 便轮到虚拟机,PVM登场了。PVM属于解释器的核心组件, 它作为基于堆栈的虚拟机。与操作系统交互PVM自身并不直接去对硬件开展操作, 也不会去处理文件、网络之类的任务。在有执行这些操作需求出现的时候, 像是运用print()实施输出、借由open()进行文件的读写, 以及凭借 开展网络通信时, 它会经由其标准库以及运行时环境去调用操作系统的接口(API)。程序的入口要是你具备C/C代码方面的基础, 那你便会晓得, 在我们通常进行代码编写之际, 存在着一个入口函数这一入口函数即为: main函数, 然而, 在其中是否存在main函数呢?答案是有的脚本按默认会从第一行起始依次执行, 然而借助if :能够对代码于直接运行以及被导入之际的各异行为予以控制, 此被视作程序的主入口约定。我们列举示例来讲明未定义入口以及定义入口之后代码的执行顺序。print(1) # 没有定义入口那么Python代码从这里向下开始执行 # 定义其他函数、类... print(2)def main(): # 你的主要程序逻辑在这里 print(2) # 可以调用其他函数、类等 # 定义其他函数、类... if __name__ __main__: print(1) # 定义了入口Python代码先从这里开始执行 main() # 只有当此文件被直接运行时main() 函数才会被调用代码执行结果相同, 先是打印出数字一, 进而再者打印出数字二。不硬性规定一定要有 if :, 然而要是没有它, 在被导入之际模块的全部顶层代码都会执行, 这很容易引发意外情况。所以, 建议进行开发作业的人都采用自定义入口的办法, 给代码打造出一个条理合理且利于阅读的程序架构。
返回列表