更多python、Linux、网络安全学习内容,可移步:www.oldboyedu.com或关注\"老男孩Linux\"公众号
分类: Python/Ruby
2021-03-08 11:38:50
学习Python的过程中,大家经常听到的就是Python源码文件,其实还有另外一种类型的文件,那就是Python字节码。那么你知道什么是Python字节码吗?如何使用python字节码工作呢?如何访问和理解Python字节码呢?我们一起来看看吧。
如何使用python字节码工作?
Python经常被称为是一种解释型语言 -- 一种源代码在程序运行时被即时翻译成原生CPU指令的语言 - 但这只说对了一部分。与其他许多解释型语言一样,Python实际上将源代码编译为一组虚拟机指令,Python的解释器就是该虚拟机的一个具体实现。这种跑在虚拟机内部的中间格式被称为“字节码”。
因此,Python留下的.pyc文件不仅仅是源代码的一个更快或优化版本; 实际上,它们是在程序运行时由Python的虚拟机来执行的字节码指令。
Python虚拟机内部
CPython使用的是基于栈的虚拟机。也就是说,它完全围绕着栈数据结构来运行(您可以将一项内容“压入”栈,放到栈结构的“顶部”,或者从栈“顶部”“弹出”一项内容)。
如何访问和理解Python字节码呢?
dis模块为Python字节码提供了一个反汇编程序,从而可以轻松获取人为可读的版本并查找各种字节码指令。dis模块的文档涵盖了相关内容,并提供了字节码指令以及它们的作用和参数的完整清单。