python源码编译报错-小白科普:Python代码是编译执行还是解释执行?

摄影:CaseyHorneronUnsplash

有人在讨论Python代码编译的还是解释的? 这个问题也可以换个说法:Python是编译语言还是解释型语言? 在回答这个问题之前,我们先弄清楚哪些是编译型语言,哪些是解释型语言。

所谓编译执行,是指源代码经过编译器的编译处理,生成目标机器码,这是机器可以直接运行的二进制补码,不需要上次重新编译被运行。 但它是针对特定的CPU系统,这段目标代码只能在特定的平台上执行,如果这段程序需要在另一个CPU上运行,这段代码必须重新编译。 它不可移植并且执行速度很快。 C、C++等语言都是编译型语言。

解释型语言在代码运行过程中逐行翻译成目标机器代码。 上次执行的时候,还是需要逐行解释。 我们可以简单地认为Java和Python都是解释型语言。

编译型相当于糕点师直接准备一道椅子菜,客人来了就可以直接吃,而讲解型则像吃烧烤。 糕点师洗碗python源码编译报错,客人需要自己做饭、吃饭。 就效率而言,解释型语言自然不如编译型语言,但也不是绝对的。 JIT的效率非常高。

上面是编译型语言和解释型语言的简单粗暴的区分,而Python(这里主要指CPython)并不是严格意义上的解释型语言,因为Python代码在运行之前会被编译(翻译)成中间代码,每次。 py 文件将转换为 .pyc 文件。 .pyc是字节码文件,是与平台无关的中间代码。 无论你放在Windows还是Linux平台上都可以执行。 运行时将由虚拟机将字节码逐行翻译成目标代码。

当我们安装Python时,会有一个Python.exe文件,它就是Python的类库。 你编写的每一行Python代码都会由它执行。 协程由编译器和虚拟机组成。 编译器负责将源代码转换为字节码文件python源码编译报错,虚拟机负责执行字节码。 因此,解释型语言虽然也有编译过程,但编译过程并不直接生成目标代码,而是生成中间代码(字节码)。 然后字节码通过虚拟机逐行解释执行。

python源码编译报错-小白科普:Python代码是编译执行还是解释执行?

总结

Python代码首先编写一个字节码文件,然后虚拟机逐行解释它,将每一行字节码翻译成目标指令供CPU执行。

python源码编译报错-小白科普:Python代码是编译执行还是解释执行?

Python爱好者社区历史文章合集:

福利:扫描文末二维码,立即关注公众号“Python爱好者社区”,开始学习Python课程:

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 python源码编译报错-小白科普:Python代码是编译执行还是解释执行? https://www.wkzy.net/game/159603.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务