Python中的对象持久性,打开了许多文件

时间:2014-08-22 18:42:30

标签: python pickle object-persistence

我试图使用pickle保存我的程序状态,这样我就可以使用在不同运行中创建的对象跳转到不同的状态。

问题在于,几乎所有这些对象(有很多)都有记录器对象,因此它们都在修改文件,并且这些文件很糟糕。

有没有办法只关闭所有当前打开的文件,以便我可以腌制它们?

1 个答案:

答案 0 :(得分:2)

您可以通过加入__getstate__方法来限制腌制的内容:

def __getstate__(self):
    state = vars(self).copy()
    del state['logger']  # remove logger object
    return state

在这种情况下,您可能还需要包含__setstate__,以重新创建记录器对象。