首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pickle何时无法对实例进行pickle操作?

pickle何时无法对实例进行pickle操作?
EN

Stack Overflow用户
提问于 2015-02-04 13:15:51
回答 2查看 75关注 0票数 0

我有一个python类,我可以实例化它,然后进行pickle。但是我还有第二个类,继承自第一个类,我不能对其实例进行酸洗。Pickle给我的错误是"can't pickle instancemethod“。这两个实例都有很多方法。那么,有没有人能猜出为什么第一个类可以,而第二个类不可以?我肯定你会想看代码,但它相当冗长,我真的不知道第二个类的“冒犯”部分可能是什么。所以我不能展示整个过程,我也不知道相关的部分是什么。

EN

回答 2

Stack Overflow用户

发布于 2015-02-04 20:47:52

这里有一个非常广泛的列表,列出了可以和不可以进行腌制的内容:https://github.com/uqfoundation/dill/blob/master/dill/_objects.py

它列出了python标准库中前15个部分的所有对象,虽然不是全部,但它还涵盖了标准库中主要的和许多次要的对象。

此外,如果您决定使用dill而不是pickle,我猜您可能不会有酸洗问题,因为dill几乎可以序列化python中的任何东西。

更直接地回答您的问题…根据您选择的设置,pickle通过引用来筛选类,而dill通过引用来筛选类代码(默认情况下是对代码进行筛选)。这可以绕过pickle具有的类引用的“查找”问题。

票数 1
EN

Stack Overflow用户

发布于 2015-02-04 13:43:58

pickle根本不会pickle你的类,pickle只适用于数据,如果你试图使用内置方法来pickle一个类,它根本不会起作用。它会出现故障和损坏。

来源:学习python作者: Mark Lutz

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28313984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档