12

今天早些时候,我问了一个关于 Python 处理某些类型循环的方式的问题。其中一个答案包含我的示例的反汇编版本。

我想知道更多。如何反汇编我自己的 Python 代码?

4

3 回答 3

13

dis模块:

def myfunc(alist):
    return len(alist)

>>> dis.dis(myfunc)
  2           0 LOAD_GLOBAL              0 (len)
              3 LOAD_FAST                0 (alist)
              6 CALL_FUNCTION            1
              9 RETURN_VALUE
于 2009-05-15T16:14:49.203 回答
3

除了dis作为模块使用外,您还可以将其作为命令行工具运行

例如,在 Windows 上,您可以运行:

c:\Python25\Lib\dis.py test.py

并将反汇编结果输出到控制台。

于 2009-05-15T17:38:30.843 回答
2

使用disPython 标准库中的模块(import dis例如在交互式解释器中,然后dis.dis使用您关心的任何函数!-)。

于 2009-05-15T16:24:53.127 回答