Python 运行机制

简介: Python 运行机制

Python 运行机制


程序运行主要有两种机制:编译型和解释型。编译型是将代码(源文件)通过编译器,编译成机器码文件,当运行的时候直接执行机器码文件,例如C语言;解释型是将源文件通过解释器,逐行进行翻译并运行。


Python则属于解释型的语言。


编译型和解释型语言各有优缺点:


解释型:

缺点:执行速度比较慢

优点:可以跨平台(操作系统)

改动不需要整体重新编译,不可脱离解释器环境运行


编译型:

缺点:不能跨平台

优点:执行速度快

任何一个小改动都需要整体重新编译,可以脱离编译环境运行


Python 的运行原理可以概括为以下几个步骤:

  1. 词法分析和语法分析:Python 解释器会将源代码进行词法分析,将代码转换为一系列的 Token(即词法单元)。然后,Python 解释器会对 Token 进行语法分析,将代码转换为语法树。
  2. 字节码编译: Python 解释器会将语法树编译成字节码。字节码是一种类似于机器码的中间代码,它比源代码更加容易解释执行。
  3. 解释执行:最后,Python 解释器会逐行解释字节码为机器码,由CPU执行机器码。


python解释器是一个可执行文件(加动态库),可以由Python源码编译得到(使用make install),但是编译和安装 Python 解释器需要一些编译工具和库的支持,例如 gcc 编译器、make 工具、zlib 库、OpenSSL 库、Tkinter 库等。


字节码是一种中间形式,Python 程序不需要在每次执行时都重新编译,pyc的目的是重用,Python解释器认为只有import进来的模块,才是需要被重用的模块。pyc文件每次被载入时,都会检查它的最后修改日期(由PyCodeObject写入到pyc时会写入一个long型的日期),与py文件一致则直接使用,否则重新生成一份pyc文件。

相关文章
|
5天前
|
存储 数据库连接 API
Python环境变量在开发和运行Python应用程序时起着重要的作用
Python环境变量在开发和运行Python应用程序时起着重要的作用
40 15
|
1月前
|
Linux 区块链 Python
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
51 1
Python实用记录(十三):python脚本打包exe文件并运行
|
17天前
|
监控 Java 开发者
Python的垃圾收集机制有哪些?
Python的垃圾收集机制有哪些?
|
19天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
19 3
|
2月前
|
Python
turtle库的几个案例进阶,代码可直接运行(python经典编程案例)
该文章展示了使用Python的turtle库进行绘图的进阶案例,包括绘制彩色圆形和复杂图案的代码示例。
331 6
turtle库的几个案例进阶,代码可直接运行(python经典编程案例)
|
2月前
|
Python
turtle库的几个简单案例,代码可直接运行(python经典编程案例)
该文章提供了多个使用Python的turtle库绘制不同图形的简单示例代码,如画三角形、正方形、多边形等,展示了如何通过turtle进行基本的绘图操作。
137 5
|
2月前
|
NoSQL MongoDB 数据库
python3操作MongoDB的crud以及聚合案例,代码可直接运行(python经典编程案例)
这篇文章提供了使用Python操作MongoDB数据库进行CRUD(创建、读取、更新、删除)操作的详细代码示例,以及如何执行聚合查询的案例。
33 6
|
2月前
|
Windows Python
python获取windows机子上运行的程序名称
python获取windows机子上运行的程序名称
|
2月前
|
测试技术 数据库 开发者
Python作为一种谦逊的编程语言:对象自省机制的探讨
Python的自省机制是该语言的一个强大特性,为开发者提供了深入了解和操作对象的能力。它增强了Python的灵活性,使得开发者可以更加精准地控制程序的行为。然而,合理利用自省能力,避免其成为代码复杂性的来源,是每个Python开发者需要考虑的问题。通过熟练运用Python提供的自省工具和技巧,可以更好地设计和实现高效、易维护的Python应用。
33 2
|
1月前
|
文字识别 开发者 iOS开发
Python反爬机制-验证码(一)
Python反爬机制-验证码(一)