Earlier today, I asked a question about the way Python handles certain kinds of loops. One of the answers contained disassembled versions of my examples.
今天早些时候,我问了一个关于Python处理某些循环的方式的问题。其中一个答案包含我的示例的反汇编版本。
I'd like to know more. How can I disassemble my own Python code?
我想知道更多。我该如何反汇编自己的Python代码?
3 个解决方案
#1
Look at the dis module:
看看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
#2
Use the dis
module from the Python standard library (import dis
e.g. in an interactive interpreter, then dis.dis
any function you care about!-).
使用Python标准库中的dis模块(例如在交互式解释器中导入dis,然后dis.dis你关心的任何函数! - )。
#3
Besides using dis
as module, you can also run it as command line tool
除了使用dis作为模块,您还可以将其作为命令行工具运行
For example, on windows you can run:
例如,在Windows上,您可以运行:
c:\Python25\Lib\dis.py test.py
And it will output the disassembed result to console.
它会将反汇编的结果输出到控制台。
#1
Look at the dis module:
看看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
#2
Use the dis
module from the Python standard library (import dis
e.g. in an interactive interpreter, then dis.dis
any function you care about!-).
使用Python标准库中的dis模块(例如在交互式解释器中导入dis,然后dis.dis你关心的任何函数! - )。
#3
Besides using dis
as module, you can also run it as command line tool
除了使用dis作为模块,您还可以将其作为命令行工具运行
For example, on windows you can run:
例如,在Windows上,您可以运行:
c:\Python25\Lib\dis.py test.py
And it will output the disassembed result to console.
它会将反汇编的结果输出到控制台。