查看python字节码指令

最近在看《python源码剖析》这本书,其中大部分分析过程都是需要查看字节码指令的,但是书中没有指定如何获取一段代码的字节码指令,查了一下文档才发现该如何生成字节码指令,记录一下:
假如有一个python文件simple_obj.py,内容如下:

i = 1
s = "Python"
d = {}
l = []

如何得到该端代码的字节码呢?
需要使用到dis模块以及compile函数:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import sys
import dis


s = open(sys.argv[1]).read()
co = compile(s, sys.argv[1], 'exec')
print(dis.dis(co))

得到的字节码结果:

  1           0 LOAD_CONST               0 (1)
              3 STORE_NAME               0 (i)

  2           6 LOAD_CONST               1 ('Python')
              9 STORE_NAME               1 (s)

  3          12 BUILD_MAP                0
             15 STORE_NAME               2 (d)

  4          18 BUILD_LIST               0
             21 STORE_NAME               3 (l)
             24 LOAD_CONST               2 (None)
             27 RETURN_VALUE
posted @ 2020-09-21 22:54  冷冰若水  阅读(1031)  评论(0编辑  收藏  举报