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

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

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

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

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

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

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

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

Python 之所以称为解释型语言,是因为它没有显示的调用编译操作,表现出解释型的特性比较多而已。但事实上,编译是存在的,具体怎么编译就看语言的实现了,也就是解释器的设计。

打开APP精彩内容

点击阅读全文

python解释型语言_python是解释型语言吗?会被编译吗?相关推荐

  1. python是一种解释型语言_解释型语言python

    摘要 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序.由于翻译方式的不同,习惯上我们大致把高级语言分为两类,即编译型语言和解释型 ...

  2. python画代码-Python教程_Python画Mandelbrot集 代码

    Python教程_Python画Mandelbrot集 代码 作者:Comet 来源: 课课家 www.kokojia.com点击数:278发布时间:2015-06-19 11:17:19 曼德勃罗集 ...

  3. c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...

    用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...

  4. python编程语言_python编程语言的简要历史

    python编程语言 The Python programming language is a general-purpose programming language that has carved ...

  5. 2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?

    2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?编程界的王者是渐落寞的Java还是大火的Python? 是不是你们也喜 ...

  6. python内核_python内核_python内核语言_python版本内核 - 云+社区 - 腾讯云

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! windows下编译cpython据compile and build on w ...

  7. python魅力_Python逐渐失去魅力

    自从20世纪90年代初发布以来,Python一直相当火爆,在这二十多年里,它的流行程度远远超过了C.C#.Java甚至Javascript. 虽然Python在数据科学和机器学习领域占主导地位,甚至是 ...

  8. 开源python语音识别_python图像识别开源

    常用的十大 python 图像处理工具 本文为 AI 研习社编译的技术博客,原标题 : 10 Python image manipulation tools. 作者 | Parul Pandey 翻译 ...

  9. Python 源码剖析(一)—— vs2013 编译 python 源码

    参考 windows环境下编译python 准备 VS 2013(其实 vs 版本编译的差异不大,设置也基本相同) python 源码文件: Python-2.7.3.tgz 编译 (1)解压 Pyt ...

  10. geany执行python闪退_说说如何使用 Geany 编译与执行 Python

    1 下载与安装 从官网下载 Releases 版本. 下载后, 按默认设置安装即可. 安装 Geany 后,打开效果如下: 2 设置 2.1 指定工作空间 指定保存文件的名称以及所要保存的文件夹路径: ...

最新文章

  1. 测序仪的序列:DNA测序的历史
  2. 安装好android的adt以后重启eclipse,但是没有创建AVD的图标
  3. Bugku 杂项 隐写2 Welcome_.jpg
  4. ESFramework介绍之(30)―― 消息侦察者 INetMessageSpy
  5. C# 多线程 Parallel.For 和 For 谁的效率高?那么 Parallel.ForEach 和 ForEach 呢?
  6. Solr学习总结(1)——Apache Solr快速入门
  7. [07-01]http网页提示含义
  8. Linux学习笔记11_系统操作、优化相关命令复习
  9. smartsvn 8.6.6 for linux 的安装与破解
  10. 益阳计算机应用专业推荐一下,益阳职业技术学院10大好专业推荐
  11. 2021-06-14 阻塞队列的方法
  12. 推荐收藏:50个最佳机器学习公共数据集
  13. 版权声明--关于本人BLOG发表的带有原创标识的文章相关
  14. CentOS 7拨号上网(ADSL PPPoE)
  15. win8激活时出现”错误代码:0×8007007B 错误描述:文件名、目录名或卷标语法不正确“解决方法
  16. HTML“计算机输出”标签 codekbdsampttvarpre
  17. HDU-4417 Super Mario (主席树)
  18. 日内趋势票如何把握?
  19. vscode的vue代码提示与补全没反应(vetur问题)
  20. 快讯:飞书玩家大会线上举行;微信支付推出“教培服务工具箱”

热门文章

  1. Flask入门 表单Flask-wtf form原生 Bootstrap渲染(七)
  2. 如何从数据库(实体提供者)读取安全用户(转自http://wiki.jikexueyuan.com/project/symfony-cookbook/entity-provider.html)...
  3. ubuntu14.04 server 安装docker
  4. API 函数 MultiByteToWideChar 实现各类编码转换
  5. 【Spring-AOP】源码分析汇总
  6. 设计模式 ( 一 ) 单例模式
  7. HashMap分拣存储示例
  8. 再谈mysql之执行计划explain
  9. python复盘之windows环境的安装
  10. Activities 四大组件之一