假设我有以下lambda函数。
fn = lambda x: print(x)
如果我想将其转换为字符串
"lambda x: print(x)"
我该怎么办?
我期待str(fn)
或str(fn.__code__)
会这样做但不是真的...它只打印出类型,内存位置等。
我也尝试了pickle.dumps和json,但我无法得到我想要的东西。
如何将函数转换为显示函数定义的字符串?
---我想将函数作为输入并将其转换为字符串
答案 0 :(得分:9)
如果您安装了莳萝,这很容易。 (pip install dill
)
from dill.source import getsource
squared = lambda x:x**2
print(getsource(squared))