首先,我不期待一个解决方案,只是希望有一些关于如何开始的指示.
我有一个带嵌入式Python解释器的C程序.程序用作输入的Python脚本显然是指C语言定义的对象和函数.我现在想让这些物品中的一些可以腌制.
pickle文档描述了如何使用扩展类型进行扩展__reduce__.但这是一个Python方法 - 我如何在底层PyObject中定义它?
相当肯定我错误地理解了一些东西......
该pickle模块同时包含python和C变体(称为cPickle).因此,该__reduce__方法需要从Python代码中调用.
因此,您需要__reduce__在C对象PyMethodDef结构中提供具有合适实现的条目.
或者,您也可以在copy_reg模块中注册酸洗功能.该模块的原始用例是更好地支持扩展模块; 该模块的源代码说明:
这仅对为C中定义的扩展类型添加pickle支持非常有用,而不是用于用户定义类的实例.
| 归档时间: |
|
| 查看次数: |
1160 次 |
| 最近记录: |