gpt4 book ai didi

python: pickle c对象

转载 作者:太空狗 更新时间:2023-10-29 18:08:21 26 4
gpt4 key购买 nike

首先,我并不期待解决方案,只是希望获得一些关于如何开始的指示。

我有一个带有嵌入式 Python 解释器的 C 程序。程序用作输入的 Python 脚本显然是指 C 定义的对象和函数。我现在想让其中一些对象成为可 pickle 的。

pickle 文档描述了如何使用 __reduce__ 使扩展类型可 picklable。但这是一个 Python 方法 - 我将如何在底层 PyObject 中定义它?

很确定我误解了一些东西......

最佳答案

pickle 模块有 python 版本和 C 版本(称为 cPickle)。因此,__reduce__ 方法需要可从 Python 代码中调用。

因此,您需要在 C 对象中提供一个 __reduce__ 条目 PyMethodDef struct有一个合适的实现。

或者,您也可以使用 copy_reg module 注册一个 pickling 函数。 .该模块最初的用例是为了更好地支持扩展模块; source code对于模块状态:

This is only useful to add pickle support for extension types defined in C, not for instances of user-defined classes.

关于python: pickle c对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12530333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com