Grazie mille per il suggerimento,

l'oggetto poi va a finire in sqlalchemy che internamente usa pickle per scrivere l'oggetto nel db. quindi in questo modo dovrebbe funzionare

ciao,
Matteo


Il 20/04/2012 09:54, Marco Giusti ha scritto:
On Thu, Apr 19, 2012 at 04:47:49PM +0200, Matteo Boscolo wrote:
Ciao a tutti
devo trasformare gli attributi della mia classe da

class myClass(object):
     def __init__(self):
         self.pippo=10

a

class myClass(object):
     def __init__(self):
         self._pippo=10

tutto cio per evitare dei problemi di ricorsione con il modulo pickle
adesso uso questa tecnica:
Non mi sembra che pickle abbia tanti problemi con la ricorsione se non
che "...highly recursive data structure may exceed the maximum recursion
depth...".

Se il problema è solo per serializzare gli oggetti perché non usare un
approccio differente? Invece di modificare del codice già esistente
deleghi ad altri l'ingrato compito. Solo un esempio su come risulterebbe
il tuo codice:


        class myClass(object):
                def __init__(self):
                        self.pippo=10

        import zope.interface
        from zope.interface.adapter import AdapterRegistry

        class ISerializable(zope.interface.Interface):
                def getObject():
                        """Return the original object"""

        class SerializerMyClass:
                zope.interface.implements(ISerializable)
                def __init__(self, original):
                        self._pippo = original.pippo
                def getObject(self):
                        obj = myClass()
                        obj.pippo = 10

        registry = AdapterRegistry()
        registry.register([declarations.implementedBy(myClass)],
                        ISerializable, '', SerializerMyClass)

        ###

        import pickle
        s = pickle.dumps(ISerializable(myobj))
        myobj = pickle.loads(s).getObject()


_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a