如何在不丢失 'connections' 的情况下序列化 Atom api 对象

How to serialize Atom api objects without losing 'connections'

我正在使用基于 Atom 的 Enaml gui,我想 save/load 原子对象 to/from 磁盘。

我试过使用 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 对象的字典?

了解如何使用 setattr 保持 Atom 更新机制正常工作。