学习Python的过程中,大家经常听到的就是Python源码文件,其实还有另外一种类型的文件,那就是Python字节码。那么你知道什么是Python字节码吗?如何使用python字节码工作呢?如何访问和理解Python字节码呢?我们一起来看看吧。

  如何使用python字节码工作?

  Python经常被称为是一种解释型语言 -- 一种源代码在程序运行时被即时翻译成原生CPU指令的语言 - 但这只说对了一部分。与其他许多解释型语言一样,Python实际上将源代码编译为一组虚拟机指令,Python的解释器就是该虚拟机的一个具体实现。这种跑在虚拟机内部的中间格式被称为“字节码”。

  因此,Python留下的.pyc文件不仅仅是源代码的一个更快或优化版本; 实际上,它们是在程序运行时由Python的虚拟机来执行的字节码指令。

  Python虚拟机内部

  CPython使用的是基于栈的虚拟机。也就是说,它完全围绕着栈数据结构来运行(您可以将一项内容“压入”栈,放到栈结构的“顶部”,或者从栈“顶部”“弹出”一项内容)。

  如何访问和理解Python字节码呢?

  dis模块为Python字节码提供了一个反汇编程序,从而可以轻松获取人为可读的版本并查找各种字节码指令。dis模块的文档涵盖了相关内容,并提供了字节码指令以及它们的作用和参数的完整清单。

©著作权归作者所有:来自51CTO博客作者mb5fd1925b5d585的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Cglib 和 Mica Bean copy 生成字节码对比
  2. C语言将float拆分为4个hex传输与重组
  3. C语言打印数据的二进制格式-原理解析与编程实现
  4. 【docker】docker其实很简单
  5. 【mysql】ipv4地址转换为4字节整数
  6. 【java】面试官问我,如何实现一个自定义序列化
  7. 虚拟机常见的网络类型有哪些?linux运维学习
  8. Java与php的一些关联
  9. 还不明白可空类型原理? 我可要挖到底了

随机推荐

  1. java基础知识
  2. Java常用的时间工具类DateTimeUtils.java
  3. 手把手带你爬天猫,获取杜蕾斯评论数据
  4. Oracle19c_cdb数据库自动安装部署脚本
  5. 当谈论迭代器时,我谈些什么?
  6. Python 之父撰文回忆:为什么要创造 pgen
  7. 从 Python 之父的对话聊起,关于知识产权、
  8. Python 为了提升性能,竟运用了共享经济
  9. 如何美观地打印 Python 对象?这个标准库可
  10. Python 浮点数的冷知识