问题描述
我在 C 中创建了一个位序列自定义类型
typedef struct {
PyObject_VAR_HEAD
uint8_t data[1];
} BitStream;
static PyTypeObject BitStreamType = {
PyVarObject_HEAD_INIT(NULL,0)
.tp_name = "my_module.BitStream",.tp_dealloc = 0,.tp_free = PyObject_Del,.tp_basicsize = offsetof(BitStream,data),.tp_itemsize = sizeof(uint8_t),.tp_flags = Py_TPFLAGS_DEFAULT,};
我试过对我的一些模块函数的结果进行酸洗
with open(path,"wb") as outfile:
pickle.dump(myobject,outfile)
但得到错误
TypeError: cannot pickle 'my_module.BitStream' object
环顾四周,我发现可以为其自定义类定义 .__reduce__()
以让 pickle 腌制它们。
我的问题是,我更喜欢直接存储我的自定义类。我不想使用 Python 类型来表示它(这似乎是 .__reduce__()
需要返回的)
我该怎么做才能仍然允许通过pickle将其保存到二进制文件中并从二进制文件中加载?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)