Featured image of post Python小知识 - dis字节码反汇编器

Python小知识 - dis字节码反汇编器

dis字节码反汇编器

这里主要是通过dis类的dis方法

1
2

dis.dis(x=None, *, file=None, depth=None)

官方解释如下:

反汇编 x 对象。 x 可以表示模块、类、方法、函数、生成器、异步生成器、协程、代码对象、源代码字符串或原始字节码的字节序列。对于模块,它会反汇编所有功能。对于一个类,它反汇编所有方法(包括类和静态方法)。对于代码对象或原始字节码序列,它每字节码指令打印一行。它还递归地反汇编嵌套代码对象(推导式代码,生成器表达式和嵌套函数,以及用于构建嵌套类的代码)。在被反汇编之前,首先使用 compile() 内置函数将字符串编译为代码对象。如果未提供任何对象,则此函数会反汇编最后一次回溯。

下面看个实例方法

1
2
3
4
5
6
7

import dis

def greet(name):
    return 'Hello,' + name + '!'

dis.dis(greet)

运行后得到的结果如下

1
2
3
4
5
6
7

 15           0 LOAD_CONST               1 ('Hello,')
              2 LOAD_FAST                0 (name)
              4 BINARY_ADD
              6 LOAD_CONST               2 ('!')
              8 BINARY_ADD
             10 RETURN_VALUE
Licensed under CC BY-NC-SA 4.0
最后更新于 Jul 30, 2025 11:28 +0800