gpt4 book ai didi

python - 如何将 python 函数/类/模块对象转换为 python 代码对象

转载 作者:行者123 更新时间:2023-11-28 16:51:40 25 4
gpt4 key购买 nike

我一直在寻找将 python 中的函数或类或模块对象转换为 python 代码对象的方法。

有些人通过执行 inspect.getsource()compile() 来完成此操作,但这样做的问题是您正在读取可能已更改的文件,或者如果它是在交互式 python shell 中编写的,您只会在 getsource 上得到一个异常。

我想知道是否还有其他人可以解决这个问题,所以它看起来像这样:

import dis

def func(arg):
x = 5
arg = 3
return x + arg

code_obj = function_to_code_obj(func)
dis.disassemble(code_obj)

并打印出代码对象反汇编,就像使用 compile()parser.suite() 创建它一样......

最佳答案

对于函数,您可以使用 func_code 属性:

import dis

def func(arg):
x = 5
arg = 3
return x + arg

def function_to_code_obj(func):
return func.func_code

code_obj = function_to_code_obj(func)
dis.disassemble(code_obj)

关于python - 如何将 python 函数/类/模块对象转换为 python 代码对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6596573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com