【发布时间】:2017-01-21 17:52:32
【问题描述】:
我想做以下事情:
import pickle
namespace = {}
exec('def f(x): return x', namespace)
pickle.dumps(namespace['f'])
但是,这会导致以下错误:
---------------------------------------------------------------------------
PicklingError Traceback (most recent call last)
<ipython-input-102-61493bb3c732> in <module>()
2 namespace = {}
3 exec('def f(x): return x', namespace)
----> 4 pickle.dumps(namespace['f'])
PicklingError: Can't pickle <function f at 0x7f2134171950>: it's not the same object as __main__.f
我要解决的问题:我有一个字符串格式的函数,我需要能够序列化它(用于并行化目的。)
【问题讨论】:
-
您应该解释您的代码中当前发生的不符合预期的情况。当该代码现在运行时会发生什么。你期望会发生什么。 究竟你想用你的代码实现什么?请修改如何组合一个更可靠的minimal reproducible example,以帮助更好地解决您的问题。
-
感谢您的评论,我已添加错误消息。此外,我认为我很清楚地描述了我的问题。
标签: python serialization namespaces pickle dill