【发布时间】:2011-06-02 05:14:45
【问题描述】:
我正在尝试使用这段代码加载和保存对象,这是我从一周前提出的一个问题中得到的:Python: saving and loading objects and using pickle.
这段代码是这样的:
class Fruits: pass
banana = Fruits()
banana.color = 'yellow'
banana.value = 30
import pickle
filehandler = open("Fruits.obj","wb")
pickle.dump(banana,filehandler)
filehandler.close()
file = open("Fruits.obj",'rb')
object_file = pickle.load(file)
file.close()
print(object_file.color, object_file.value, sep=', ')
乍一看,这段代码运行良好,加载并查看保存对象的“颜色”和“值”。
但是,我追求的是关闭一个会话,打开一个新会话并加载我在过去会话中保存的内容。我在输入filehandler.close() 后关闭会话,然后打开一个新会话,然后输入其余代码,然后在输入object_file = pickle.load(file) 后出现此错误:
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
object_file = pickle.load(file)
File "C:\Python31\lib\pickle.py", line 1365, in load
encoding=encoding, errors=errors).load()
AttributeError: 'module' object has no attribute 'Fruits'
谁能解释一下这个错误信息的含义并告诉我如何解决这个问题?
非常感谢,新年快乐!!
【问题讨论】: