Nouveau à python ... J'ai la clé de classe suivante, qui s'étend dict:Comment créer une classe en utilisant cornichon en persistant Python
class Key(dict):
def __init__(self):
self = { some dictionary stuff... }
def __getstate__(self):
state = self.__dict__.copy()
return state
def __setstate__(self, state):
self.__dict__.update(state)
Je veux enregistrer une instance de la classe avec ses données en utilisant pickle.dump, puis récupérez les données en utilisant pickle.load. Je comprends que je suis supposé changer d'une manière ou d'une autre l'état et l'état du setstate, cependant, je ne suis pas tout à fait clair sur comment je suis censé faire cela ... toute aide serait grandement appréciée!
C'est fantastique! Merci Keith! Cependant, j'obtiens toujours l'erreur suivante quand j'essaye d'obj = pickle.load alors improb.objectif: return super (Key, self) .__ getitem __ (nom) KeyError: 'self' –
Si j'imprime obj je reçois l'étrange sortie Key ({}) au lieu de {} ... une idée de ce qui pourrait se passer ici? –
ElfsRUs: Ce dernier est dû à la méthode __repr__- Keith l'a spécifiquement conçu pour ressembler à ça. Vous pouvez le remplacer par "return"% s "% (dict .__ repr __ (self),)' si vous voulez qu'il ressemble à {}. En ce qui concerne le premier problème, pourriez-vous poster le code que vous avez utilisé pour obtenir ce retraçage? –