Python 是解释型的语言吗?它会被编译吗?
这个问题无想象中那样好回答。和非常多人认识世界同样,习惯以一个简单的模型去评判有些事物。而事实上,里面包括了非常多非常多的细节。
一般的说法,编译表率着将一个高级语言转化为 CPU 能执行的设备码。当你编译 C 的时候,的确是做的这般的操作。编译的结果是一个二进制可执行文件,此时你的系统可直接运行这个程序。
与此相对的,解释的意思是这般的:程序运行时每次读源文件中的一行代码,并执行相应的操作,就这般一行一行的重复下去。当然,所说的脚本语言便是这么运行的。
在 Python 中,源代码会被编译为更低级的一种形式,咱们叫作之为字节码。字节码是一串指令,和 CPU 的指令集类似。然则字节码并不直接被 CPU 执行,而是在虚拟机中执行的。当然,这儿的虚拟机并不模仿全部操作系统的环境,只是供给了字节码执行的一个环境。
Python 还有一个重要的特性,便是交互式命令行。你能够敲入一行 Python 语句,而后立刻回车执行。实质上,即使是这个过程,Python 一样是先转为字节码,而后执行。而这个交互式命令行这个特性,在非常多编译型语言里是无的。一样由于无表示的调用编译程序,非常多人将执行 Python 源文件的程序叫做 Python 解释器。
即使比较简略,但还是弥补下。部分编译型语言例如 C 或 JAVA 亦有交互式命令行,但这些并不是这些语言的重心。JAVA 刚起始是编译成字节码而后执行,后面有了即时编译技术( JIT )能够直接编译成设备码,与 C 类似。
从上面的描述能够看出,不管是解释还是编译,并没法完全分离开来。非常多时候,咱们想用有些词将现有的编程语言分个类,但事实上要办到这一点太难了。
Python 之因此叫作为解释型语言,是由于它无表示的调用编译操作,表现出解释型的特性比较多罢了。但事实上,编译是存在的,详细怎么编译就看语言的实现了,亦便是解释器的设计。
以上便是python是解释型语言吗的仔细内容,更加多请关注其它关联文案!
更加多技巧请《转发 + 关注》哦!
|