-
Python如何运行程序
Python解释器简介
- 解释器是一种让其他程序运行起来的程序。
- Python解释器将读取程序,并按照其中的命令执行,得出结果。
- 解释器是代码与机器的计算机硬件之间的软件逻辑层。
- 解释器本身可以用C程序实现,或者一些Java类实现。
程序执行
程序员视角
- Python程序仅是一个包含Python语句的文本文件。
- Python文件是以.py结尾的。从技术上讲,这种命名方案在被“导入”时才是必须的。
- Python解释器讲从头至尾按照顺序运行文件中的语句。
Python解释器视角
字节码编译
- Python内部会先将源代码编译成字节码的形式。字节码是一种低级的,与平台无关的表现形式。
- 源文件的修改和Python版本的改变都会触发新的字节码的编译。
- 字节码只会针对那些被导入的文件而生成,而不是顶层的执行脚本。(严格来说,这是一种针对“导入”的优化)
Python虚拟机(PVM)
- 一旦程序编译成字节码,之后的字节码发送到通常称为Python虚拟机(PVM)的程序上来执行。
- 本质上PVM就是迭代运行字节码指令的一个大循环,一个接一个地完成操作。
-
从技术上讲,它只是所谓“Python解释器”的最后一步。
性能的含义
- Python的工作中通常没有构建或“make”的步骤。
- Python字节码不是机器的二进制代码。
- PVM仍需解释字节码,并且字节码指令比CPU指令需要更多的工作。
- 与其他经典解释器不同,Python仍有内部编译的步骤:Python并不需要反复地重新分析和重新分解每一行源代码语句的文本。
- 纯Python代码的运行速度介于传统编译语言和传统解释语言之间。
开发的含义
- Python的执行模型导致开发和执行的环境没有区别。
- 在Python中,编译器总是在运行时出现,并且是运行系统的一部分。
出处:https://www.cnblogs.com/samsong1991/p/17021143.html
最新更新
Objective-C语法之代码块(block)的使用
VB.NET eBook
Add-in and Automation Development In VB.NET 2003 (F
Add-in and Automation Development In VB.NET 2003 (8
Add-in and Automation Development in VB.NET 2003 (6
Add-in and Automation Development In VB.NET 2003 (5
AddIn Automation Development In VB.NET 2003 (4)
AddIn And Automation Development In VB.NET 2003 (2)
Addin and Automation Development In VB.NET 2003 (3)
AddIn And Automation Development In VB.NET 2003 (1)
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
武装你的WEBAPI-OData入门
武装你的WEBAPI-OData便捷查询
武装你的WEBAPI-OData分页查询
武装你的WEBAPI-OData资源更新Delta
5. 武装你的WEBAPI-OData使用Endpoint 05-09
武装你的WEBAPI-OData之API版本管理
武装你的WEBAPI-OData常见问题
武装你的WEBAPI-OData聚合查询
OData WebAPI实践-OData与EDM
OData WebAPI实践-Non-EDM模式