假设我们有一个使用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
,foo
和bar
所属的类(实际上是我们设计中的所有其他类)。
当我们baz
对象回到内存中时,我们希望将所有load()
引用设置回给定的上下文。可以通过递归遍历对象树来实现这一点,但我们想知道在context
中是否有更优雅的解决方案在将数据加载到内存时填充pickle
值本身?
答案 0 :(得分:2)
如果private static Properties propDef = new Properties();
private static Properties propLim = new Properties();
的类型为.context
,则可以调整Context
中Persistence of External Objects部分的代码,而不是将context
设置为None
。 {1}}文档:
pickle