Hello,
   
  I've got a fairly simple class instance that I'm pickling. I'm using setstate 
to update the instance when I unpickle. Although the setstate doesn't seem to 
be called upon unpickling... here's an example, if anyone see's what I'm doing 
wrong, please let me know. Thanks!
   
  so I say start out with this class:
   
  class dog:
      def __init__(self):
          self.num_legs = 4
   
  then I pickle the instance of:
  sparky = dog()
   
  then I update my dog class to:
  class dog:
      def __init__(self):
          self.hair_color = 'brown'
          self.num_legs = 4
   
      def __setstate__(self, d):
          if 'hair_color' not in d:
              d['hair_color'] = 'brown'
          self.__dict__.update(d)
          print 'did this work?'
   
  Now when I unpickle the original pickled object sparky I would hope to see 
'did this work' and I would also hope that sparky would have updated to have 
the attribute 'hair_color' but nothing of the sort happens. if just unpickles 
sparky without updating the attributes as I was hoping.
   
  Thanks!
   
  Jeff



       
---------------------------------
Never miss a thing.   Make Yahoo your homepage.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to