【发布时间】:2013-05-13 15:33:16
【问题描述】:
我必须像这样腌制一组对象:
import cPickle as pickle
from numpy import sin, cos, array
tmp = lambda x: sin(x)+cos(x)
test = array([[tmp,tmp],[tmp,tmp]],dtype=object)
pickle.dump( test, open('test.lambda','w') )
它给出了以下错误:
TypeError: can't pickle function objects
有办法解决吗?
【问题讨论】:
-
似乎是一件奇怪的事情。用例是什么?
-
SymPy 中的 @Aya lambdify 使得创建 lambda 函数非常方便。我想使用 Cython 评估它们。你可以refer to this other question for further information
-
好吧,我对 Cython 了解不多,但 Martijn 的解决方案只有在 Cython 可以导入定义了
tmp(x)函数的 Python 文件时才有效。
标签: python arrays numpy lambda pickle