0

我正在使用基于 Atom 的 Enaml gui,我想将 atom 对象保存到磁盘/从磁盘加载/加载。

我曾尝试使用 pickle,但我失去了与 gui 的连接。

from atom.api import Atom, Unicode
import pickle

class test(Atom):
     name = Unicode

     def save(self)
          f = open('tester.p','w')
          pickle.dump(self.name,f)
          f.close()

     def load(self):
          f = open('tester.p','r')
          self.name = pickle(f)  # gui is not updated
          #self.name = 'this one works' #gui is updated
          f.close()

如何在不丢失 gui 连接的情况下序列化 Atom 对象?

编辑:我发现如果我这样做 self.name = str(pickle(f)) 我可以获得字符串而不会丢失连接。如何将这个想法扩展到更通用的东西,比如带有任意 Atom 对象的字典?

4

1 回答 1

0

请参阅此 stackoverflow 问题和答案,了解如何使用 setattr 保持 Atom 更新机制正常工作。

于 2016-12-21T20:35:28.830 回答