我正在尝试编写一个编译为pyc文件的编译器,但我确实在为pyc文件的实际内容以及其全部工作方式而苦苦挣扎。为了使格式更舒适,我想手写一个pyc文件,但是我找不到任何资源。我希望这里的某人可能有资源,或者能够告诉我我该怎么做。
谢谢你的帮助!
简短的答案是你做不到。对于字节码的定义方式,尚无正式的规范。有一个PEP规范,但对于运行字节码的虚拟机则没有任何要求(据我所知)。您可以浏览代码以了解如何完成,也可以使用以下步骤对其中的部分进行逆向工程dis.dis
In [5]: def hello():
...: print("hello")
...:
In [6]: dis.dis(hello)
2 0 LOAD_GLOBAL 0 (print)
2 LOAD_CONST 1 ('hello')
4 CALL_FUNCTION 1
6 POP_TOP
8 LOAD_CONST 0 (None)
10 RETURN_VALUE
但是这种类型的东西可以在版本之间变化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句