欢迎光临杨雨的个人博客站!

杨雨个人网站-杨雨个人博客-杨照佳

杨雨个人博客网站

关注互联网和搜索引擎的个人博客网站

首页 > WEB开发 > Python教程 >

python是解释型语言吗

发布时间:2019-06-12  编辑:杨雨个人博客网站   点击:   

Python 是解释型的语言吗?它会被编译吗?

这个问题没有想象中那么好回答。和很多人认识世界一样,习惯以一个简单的模型去评判一些事物。而事实上,里面包含了很多很多的细节。

python是解释型语言吗

通常的说法,编译代表着将一个高级语言转化为 CPU 能执行的机器码。当你编译 C 的时候,的确是做的这样的操作。编译的结果是一个二进制可执行文件,这时你的系统可直接运行这个程序。

与此相对的,解释的意思是这样的:程序运行时每次读源文件中的一行代码,并执行相应的操作,就这样一行一行的重复下去。当然,所谓的脚本语言就是这么运行的。

在 Python 中,源代码会被编译为更低级的一种形式,我们称之为字节码。字节码是一串指令,和 CPU 的指令集类似。但是字节码并不直接被 CPU 执行,而是在虚拟机中执行的。当然,这里的虚拟机并不模仿整个操作系统的环境,只是提供了字节码执行的一个环境。

Python 还有一个重要的特性,就是交互式命令行。你可以敲入一行 Python 语句,然后立刻回车执行。实际上,即使是这个过程,Python 同样是先转为字节码,然后执行。而这个交互式命令行这个特性,在很多编译型语言里是没有的。同样因为没有显示的调用编译程序,很多人将执行 Python 源文件的程序叫做 Python 解释器

即使比较简略,但还是补充下。部分编译型语言比如 C 或者 JAVA 也有交互式命令行,但这些并不是这些语言的重心。JAVA 刚开始是编译成字节码然后执行,后面有了即时编译技术( JIT )可以直接编译成机器码,与 C 类似。

从上面的描述可以看出,不管是解释还是编译,并没法完全分离开来。很多时候,我们想用一些词将现有的编程语言分个类,但事实上要办到这一点太难了。

Python 之所以称为解释型语言,是因为它没有显示的调用编译操作,表现出解释型的特性比较多而已。但事实上,编译是存在的,具体怎么编译就看语言的实现了,也就是解释器的设计。 本文地址:http://itbyc.com/Python/21504.html
转载请注明出处。

分享是一种快乐,也是一种美德:
博客首页 | WEB开发 | 网站运营 | CMS使用教程 滇ICP备14002061号-1