Как сериализовать объекты API Atom без потери "соединений"
Я использую основанный на Atom графический интерфейс Enaml, и я хотел бы сохранить / загрузить объекты Atom на / с диска.
Я пытался использовать рассол, но я теряю связь с графическим интерфейсом.
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()
Как я могу сериализовать объекты Atom без потери графического интерфейса?
Изменить: я обнаружил, что если я делаю self.name = str(pickle(f)), я могу получить строку без потери соединений. Как я могу распространить эту идею на что-то более обобщаемое, например на словарь с произвольными объектами Atom?
1 ответ
Решение
Посмотрите этот вопрос и ответ на стекопоток, чтобы узнать, как использовать setattr для поддержания работоспособности механизма обновления Atom.