How to copy an instance without its cStringIO.StringO item ?
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Sun Feb 8 14:09:51 EST 2009
En Sun, 08 Feb 2009 14:17:34 -0200, Barak, Ron <Ron.Barak at lsi.com>
escribió:
> I need to copy an instance of a class, where one of the items in the
> original is a cStringIO.StringO object.
> I do not need the cStringIO.StringO in the target object.
> The target instance is to be pickled.
> [...]
> for_pickle_log_stream = LogStream(sac_log_file)
> for key in log_stream.__dict__:
> if key != "input_file":
> for_pickle_log_stream[key] = log_stream[key]
Note that you're iterating over __dict__ keys, but the last line does not
use __dict__. Either put __dict__ everywhere, or:
setattr(for_pickle_log_stream, key, getattr(log_stream, key))
But if you want this copy just to pickle it, follow Christian Heimes
advice and define __getstate__ / __setstate__.
--
Gabriel Genellina
More information about the Python-list
mailing list