问题描述
简而言之,我已经成为一个程序,用户可以在其中启动一个项目,然后做一些事情并保存该项目。 可以说,项目的有用数据存储在 ProjectData 类中。
要保存项目,我将 ProjectData 对象的序列化版本保存为:
with open('filename.pickle','wb') as handle:
pickle.dump(project_data_object,handle)
这样做使我很容易导入项目并开始对其进行编辑,因为它可以在需要时将对象重新加载。
我仍然经常编辑程序,并选择向 ProjectData 类(或函数)添加某个属性,本质上,有时我有时需要更改类。但是当我这样做时,我不能再导入旧版本的项目文件。
我可以将程序的版本号与pickle文件一起存储,并打开该编号以决定使用哪个类,然后将数据加载到该类的对象中,但这似乎有点麻烦。这将导致许多类定义(每个版本一个)。
是否有一种更强大/更优雅的方式来处理保存项目文件,并尝试使其成为将来的版本?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)