如何将 Python 的函数转换为 str?

how to convert function to str for Python?

假设我有以下 lambda 函数。

fn = lambda x: print(x) 

如果我想把它转换成字符串

"lambda x: print(x)" 

我能做什么? 我原以为 str(fn)str(fn.__code__) 会这样做,但实际上并没有……它只是打印出类型、内存位置等。

我也试过pickle.dumps和json,但我无法得到我想要的。

如何将函数转换为显示函数定义的字符串?

--- 我想将函数作为输入并将其转换为字符串

如果你安装了 dill 就很容易了。 (pip install dill)

from dill.source import getsource
squared = lambda x:x**2
print(getsource(squared))

尝试使用 inspect,它是 Python3 标准库的一部分:

import inspect

func = lambda e: e**2

print(inspect.getsource(func))

Returns一个字符串:

func = lambda e: e**2