Le module pickle te permet de sérialiser/désérialiser directement des objets (yc ompris des objets complexes genre listes hash, ... ), c'est à dire de les enregistrer/récupérer simplement sans prévoir de code à cet effet.
dans ta classe carnet
class carnet:
def __init__(self,filename):
self.clients = []
# restauration du carnet de client depuis le fichier "filename"
f=open(filename,'r')
sellf.clients =pickle.load(f)
f.close()
def sauver(self):
f = file(self.filename,'w')
pickle.dump(self,f)
f.close()
dans ta classe client tu vires la méthode sauver
plus d'info ici sur pickle http://www.python.org/doc/2.4.2/lib/module-pickle.html(...)
Là ou ca se complique c'est lorsque tu veux sérialiser plusieurs objets avaec des références croisées.
Il faut veiller à avoir un seul point d'entrée donc une strucure englobante.
Inconvénient tu enregistres à chaque fois la totalité de ton conteneur au lieu de n'enregistrer que ce qui change.
L'étape d'après c'est les bases de données mais pour un tuto ou un hack su le coin de la table c'est bien pratique
[^] # Re: un cardriciel...
Posté par golum . En réponse au journal Python et PyQt. Évalué à 2.
dans ta classe carnet
dans ta classe client tu vires la méthode sauver
plus d'info ici sur pickle
http://www.python.org/doc/2.4.2/lib/module-pickle.html(...)
Là ou ca se complique c'est lorsque tu veux sérialiser plusieurs objets avaec des références croisées.
Il faut veiller à avoir un seul point d'entrée donc une strucure englobante.
Inconvénient tu enregistres à chaque fois la totalité de ton conteneur au lieu de n'enregistrer que ce qui change.
L'étape d'après c'est les bases de données mais pour un tuto ou un hack su le coin de la table c'est bien pratique
D'une manière générale n'hésite pas à piocher ici avant de te lancer dans le code
http://www.python.org/doc/2.4.2/modindex.html(...)
Pour les listes en compréhension tout est expliqué sur le tutoriel de Guido
http://www.python.org/doc/2.4.2/tut/node7.html#SECTION0071400000000(...)