对Python代码运行机制的理解

Python有自己的解释器和执行指令的Python虚拟机(PVM),这也使得Python也具有像Java那样良好的跨平台特性

相比于更加注重商业逻辑的Java,Python更多的是专注于某一项特殊实现,快捷开发的功能,譬如数据分析,算法模型的构建,数据爬虫。

相比于Java,Python拥有更多开源的库,并且这些开源库中很多是用C/C+编写,封装出Python接口。

    Python的代码文件test.py在通过编译之后,并不是像Java那样直接生成class文件,而是先生成pyCodeObject对象,保存的是Python的字节码数据(对于Python来说,一个文件编译后生成的字节码也是一个对象),放在内存中,执行过后才会生成pyc文件并写入硬盘。

    pyc包含三部分:Python版本信息(用于区分哪种Python生成的文件),pyc的生成时间,以及字节码数据pyCodeObject,Python代码在执行时会先检测硬盘中是否有编译好的pyc文件,如果有,直接拿来交给Python虚拟机执行,没有的话就进行编译,而pyc的时间信息用于保证代码修改过后能进行重新编译。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入...
    小小不懂11阅读 3,463评论 2 30
  • 1. 简单的例子 先从一个简单的例子说起,包含了两个文件 foo.py 和 demo.py 执行这个程序pytho...
    jiangmo阅读 1,773评论 0 5
  • 文/Bruce.Liu1 1.Python前世今生 1.1.Python历史 Python的创始人: Guido ...
    BruceLiu1阅读 11,931评论 3 119
  • 我们不会忘记 在你的专题里 多少张面孔 熟悉的 生疏的 虽从未谋面 却时时刻在心底 你心地憔悴 把收获撒向世界 把...
    艾思阅读 497评论 8 7
  • 昨夜外婆走进梦里,泪湿枕边。 那一年,外婆永远的闭上了双眼,安详的离开了我们…… 可以说外婆是我...
    皓月当空0902阅读 590评论 20 5