python需要编译器编译执行吗,为什么python代码不需要编译

python需要编译器编译执行吗,为什么python代码不需要编译,python程序需要编译吗

在这篇文章中,边肖为大家整理了python程序编译相关的知识点。感兴趣的朋友可以借鉴一下。

Python是编译语言还是解释语言?在回答这个问题之前,你应该知道什么是编译语言,什么是解释语言。

所谓编译执行,就是通过编译器对源代码进行编译处理,生成目标机器码,也就是机器可以直接运行的二进制代码,下次运行时不需要重新编译。

但是,它是特定于特定的CPU系统的。这些目标代码只能在特定的平台上执行。如果这个程序需要在另一个CPU上运行,这个代码必须重新编译。

不具备可移植性,但是速度很快,C和C之类的语言都是编译语言。

但是,解释语言在代码运行时是逐行翻译成目标机器码的,下次执行时,仍然需要逐行解释。我们可以简单的认为Java和Python都是解释性语言。

编制型就相当于厨师直接做一桌菜,顾客来了就直接吃,讲解型就像吃火锅。厨师洗碗,顾客需要自己做饭吃。

从效率上来说,解释性语言自然不如编译性语言,但当然也不是绝对的。比如JIT就很有效率。

以上是对编译语言和解释语言简单粗暴的区分,但Python(这里主要指CPython)并不是严格意义上的解释语言;

因为Python代码在运行前会被编译(翻译)成中间代码,所以每个。py文件将被转换成. pyc文件。pyc是一种字节码文件,它是独立于平台的中间代码,无论你把它放在Windows还是Linux平台上都可以执行。在运行时,虚拟机将逐行把字节码翻译成目标代码。

当我们安装Python的时候,会有一个Python.exe文件,就是Python解释器。你写的每一行Python代码都是它执行的。解释器由编译器和虚拟机组成。编译器负责将源代码转换成字节码文件,而虚拟机负责执行字节码。所以解释语言其实是有编译过程的,但是这个编译过程并不直接生成目标代码,而是生成中间代码(字节码),然后通过虚拟机逐行解释。

总结

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

知识点拓展:

基于python的字节编译

定义:

将模块定义为二进制语言程序的过程称为字节编译。

Python是一种解释性语言,它的字节编译是由解释器完成的。

pyc结束时编译py文件和生成文件的方法,

导入zipfile.py

关于python程序是否需要编译的这篇文章到此为止。有关编译python程序的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: