如何加载pickle对象并解析某些引用

时间:2016-05-04 11:40:05

标签: python pickle

假设我们有一个使用loginVC写入二进制文件的对象。让我们说对象图如下所示:

pickle

现在foo1 +--->bar | \--->context +--->baz | +--->context | \--->qux \--->context 个对象是大型数据结构,所有qux实例都是相同的。因此,我们决定将这些context个对象从pickle过程中删除:

contexxt

适用于def __getstate__(self): my_dict = dict(self.__dict__) my_dict['context'] = None # We don't save the context return my_dict foobar所属的类(实际上是我们设计中的所有其他类)。

当我们baz对象回到内存中时,我们希望将所有load()引用设置回给定的上下文。可以通过递归遍历对象树来实现这一点,但我们想知道在context中是否有更优雅的解决方案在将数据加载到内存时填充pickle值本身?

1 个答案:

答案 0 :(得分:2)

如果private static Properties propDef = new Properties(); private static Properties propLim = new Properties(); 的类型为.context,则可以调整ContextPersistence of External Objects部分的代码,而不是将context设置为None。 {1}}文档:

pickle