我试图使用pickle保存我的程序状态,这样我就可以使用在不同运行中创建的对象跳转到不同的状态。
问题在于,几乎所有这些对象(有很多)都有记录器对象,因此它们都在修改文件,并且这些文件很糟糕。
有没有办法只关闭所有当前打开的文件,以便我可以腌制它们?
答案 0 :(得分:2)
您可以通过加入__getstate__
方法来限制腌制的内容:
def __getstate__(self):
state = vars(self).copy()
del state['logger'] # remove logger object
return state
在这种情况下,您可能还需要包含__setstate__
,以重新创建记录器对象。