Je reçois cette sortie en mode interactif.Classes dans la gestion de fichiers en Python 2.7
class test:
def p(self):
print 'PP'
>>> f=open('E:\Python\Roy Progs\Test','w')
>>> t=test()
>>> import pickle
>>> pickle.dump(t,f)
>>> f.close()
>>> f=open('E:\Python\Roy Progs\Test','r')
>>> pickle.load(f).p()
PP
>>> f.close()
>>>
=============================== RESTART: Shell ===============================
>>> f=open('E:\Python\Roy Progs\Test','r')
>>> import pickle
>>> pickle.load(f).p()
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
pickle.load(f).p()
File "E:\Python\lib\pickle.py", line 1384, in load
return Unpickler(file).load()
File "E:\Python\lib\pickle.py", line 864, in load
dispatch[key](self)
File "E:\Python\lib\pickle.py", line 1075, in load_inst
klass = self.find_class(module, name)
File "E:\Python\lib\pickle.py", line 1132, in find_class
klass = getattr(mod, name)
AttributeError: 'module' object has no attribute 'test'
De la sortie je me rends compte que la définition de la classe (dont l'objet est stocké dans le fichier) doit être là-bas dans la RAM au moment de la récupération de données et de l'utiliser. Je ne comprends pas pourquoi cela doit être le cas, en stockant des objets dans le fichier, je ne stocke pas la définition de la classe aussi?
Ne collez pas d'images de texte - collez le texte lui-même. –
Merci pour la suggestion.J'espère que c'est ok maintenant. –