Kev*_* JJ 8 python serialization python-3.6
假设我有一个以下的lambda函数.
fn = lambda x: print(x)
Run Code Online (Sandbox Code Playgroud)
如果我想将其转换为字符串
"lambda x: print(x)"
Run Code Online (Sandbox Code Playgroud)
我能做什么?我期待str(fn)或者str(fn.__code__)会这样做,但不是真的...它只打印出类型,mem位置等.
我也尝试了pickle.dumps和json,但我无法得到我想要的东西.
如何将函数转换为显示函数定义的字符串?
---我想把函数作为输入并将其转换为字符串
小智 12
如果你已经安装了莳萝,这很容易.(pip install dill)
from dill.source import getsource
squared = lambda x:x**2
print(getsource(squared))
Run Code Online (Sandbox Code Playgroud)
尝试使用inspect,它是 Python3 标准库的一部分:
import inspect
func = lambda e: e**2
print(inspect.getsource(func))
Run Code Online (Sandbox Code Playgroud)
返回一个字符串:
func = lambda e: e**2
| 归档时间: |
|
| 查看次数: |
1825 次 |
| 最近记录: |