#!/usr/bin/python
# -*- coding: ISO-8859-15 -*-
import shelve
import atexit
donnees = None
instances = []?
def _charge_objets():
print 'chargement...'
global donnees
donnees = shelve.open('objets.bin')
def _sauvegarde():
print 'sauvegarde...'
global donnees
for instance in instances:
donnees[instance.getId()]? = instance.__dict__
if donnees is not None:
donnees.close()
donnees = None
class Persistent(object):
def __init__(self, id):
global donnees
if id in donnees:
self.__dict__ = donnees[id]?
else:
self._id = id
instances.append(self)
def getId(self):
return self._id
# chargement des objets
_charge_objets()
# _sauvegarde sera appelée à la fermeture du programme
atexit.register(_sauvegarde)