[Python] pickle di una classe derivata

Simone Ziraldo simone.ziraldo a gmail.com
Mer 5 Dic 2012 00:04:54 CET


Ciao a tutti,

il problema che ho è questo: quando faccio il pickle di una classe derivata di numpy.ndarray non mi salva gli attributi che ho definito io.
Un codice semplice che genera questo problema è questo:

import pickle
import numpy

class prova( numpy.ndarray ):
    def __new__(cls,size):
        return numpy.ndarray.__new__( cls, size )
    def __init__(self,size ):
        self.__size__ = size

s = prova(2)

f = open("prova.out", 'w')
pickle.dump(s,f)
f.close()

f = open("prova.out", 'r')
obj = pickle.load(f)
f.close

print obj.__size__

e mi viene restituito questo errore:
AttributeError: 'prova' object has no attribute '__size__'

Grazie a chiunque mi aiuterà! :)

Simone


Maggiori informazioni sulla lista Python