假设我在 python 解释器中并定义一个函数如下:
def h(a):
return a
如果我想查看字节码(不是使用 dis 的反汇编),我通常可以使用h.func_code.co_code
. 还有其他方法可以查看字节码吗?
例如,在解释器中,如果我只是键入h
而不使其成为函数调用,我会得到函数的地址。我可以使用该地址来获取字节码吗?还有其他方法吗?
评论中的一些附加信息:
该应用程序是用 python 编写的,并使用 Py2App、cx_freeze 或 py2exe 之类的东西打包。我在可执行文件上玩了一些技巧,现在,当启动时,可执行文件将我转储到 python 命令行。从那里,我手动将我的函数h
输入到 interepeter 中。
的其他属性h.func_code
存在,例如co_varnames
,co_argcount
等,但co_code
不存在。
如果我在h.func_code.co_code
解释器中输入,我会得到'code' object has no attribute 'co_code'
.
更新:再次来自评论。据我所知,操作码已针对应用程序附带的 python 解释器重新映射。