som = SOM_CLASS() # includes many big difficult data structures
som.hard_work()
som.save_to_disk(filename)
#then later or another program
som = SOM_CLASS()
som.read_from_file(filename)
som.do_anythink_else()


som = SOM_CLASS()
save(som)
#...
load(som)
som.work()

最简单的方法是什么?

最佳答案

您可以使用pickle进行(反)序列化。它是向后兼容的,也就是说,它将在未来的版本中支持所有旧的协议。

import pickle

som = SOM_CLASS()
fileObject = <any file-like object>
pickle.dump(som, fileObject)
#...
som = pickle.load(fileObject)
som.work()

但是请注意,如果您将酸洗对象传输到另一台计算机,请确保连接不会被篡改为pickle might be unsecure(这是每个酸洗用户都应该知道的一篇文章)。
另一种选择是旧模块marshal

关于python - 如何在Python中完全保存/读取类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2345151/

10-12 06:59