pickle什么时候不能pickle一个实例?

2024-06-11 10:45:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python类,可以实例化然后pickle。但是我有第二个类,继承自第一个类,它的实例我不能pickle。Pickle给我一个错误“cannotpickle instancemethod”。两个实例都有很多方法。那么,有人能猜到为什么第一节课可以泡菜,而第二节课不行吗?我相信你会想看看代码,但它是相当长的,我真的不知道什么“冒犯”的部分第二类可能。所以我不能展示整个过程,也不知道相关部分可能是什么。你知道吗


Tags: 实例方法代码过程错误pickle泡菜instancemethod
2条回答

这里有很多可以和不能腌制的东西: https://github.com/uqfoundation/dill/blob/master/dill/_objects.py

它列出了python标准库中前15节左右的所有对象,虽然它不是全部,但它也涵盖了标准库中所有主要和次要的对象。你知道吗

另外,如果您决定使用dill而不是pickle,我猜您可能不会有酸洗问题,因为dill几乎可以序列化python中的任何内容。你知道吗

更直接地解决您的问题…pickle通过引用pickle类,而dill通过引用pickle类编码,这取决于您选择的设置(默认是pickle代码)。这可以绕过pickle具有的类引用的“查找”问题。你知道吗

Pickling不会简单地pickle类,pickle只对数据有效,如果您尝试用内置方法pickle类,它将根本不起作用。它会出故障的。你知道吗

来源:marklutz的python学习

相关问题 更多 >