反序列化Python类
我在尝试解压这个类的子类时遇到了问题。当我解压时,里面的内容没有了。这是怎么回事呢?
类名是 Account:
def __init__(self, server, port, smtp_server, smtp_port):
self.server = server
self.port = port
self.smtp_server = smtp_server
self.smtp_port = smtp_port
self.save()
def save(self):
#save account for later loading
self.name = tkFileDialog.asksaveasfilename(title = "Save as..")
pickle.dump(self, open(self.name, "wr"))
2 个回答
0
所以,我刚刚搞明白了这个问题——我把那些难看的 pickle 相关的东西(见评论)移动到了反序列化的类里面,导入了我之前序列化的类,结果好像可以正常工作了。
1
你的类是否继承了 object
呢?
无论如何,你都可以通过重写 __getstate__
方法来指定你想要保存的内容。否则,如果你的类是继承自 object
的话,通常会复制 __dict__
的内容。