gpt4 book ai didi

python - 检查 lambda 函数的主体

转载 作者:行者123 更新时间:2023-12-04 08:05:01 26 4
gpt4 key购买 nike

我正在构建一个编译器。我想检查一个传入编译的 lambda 函数,以便生成优化代码,如下所示:

f(fn):
print(fn.body) # how can I write this?
if fn.body == 2*x: # is this possible?
return lambda x: x << 1

f(lambda x : 2 * x)
我知道 inspect模块,但我没有找到查看 lambda 函数的方法。例如,我尝试这样做:
def foo(p):
print("code: %a" % getsource(p))

foo(lambda x: x + 1)
但它会打印 foo(lambda x: x + 1)\n而不仅仅是 lambda x: x + 1

最佳答案

试试 uncompyle6包裹。

import uncompyle6
f = lambda x: x*2
uncompyle6.deparse_code2str(f.__code__)
它返回 str代码:
return x * 2

关于python - 检查 lambda 函数的主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66254841/

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