如何将 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
假设我有以下 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