カスタム クラスのインスタンスをピクルしようとしています。このクラスには、ウィジェット オブジェクトのリストを含む「ウィジェット」という属性があります。コンテナーをピクルすると、リストが失われます。オブジェクト内のリストをピクルすることはできませんか?
import pickle
filename = 'container.pkl'
class Container(object):
widgets = []
class Widget(object):
pass
c = Container()
c.name = "My Container"
w = Widget()
w.name = "My Widget"
c.widgets.append(w)
data = open(filename, 'wb')
pickle.dump(c, data)
data.close()
後で私は解凍しようとします...
# assume I have imported the classes and filename here
data = open(filename, 'rb')
container = pickle.load(data)
data.close()
print container.name # shows the pickled name
print container.widgets # shows []
pickle と cPickle を試してみましたが、結果は同じでした。