[Numpy-discussion] pickable ndarray subclass
Stefan van der Walt
stefan at sun.ac.za
Sun Apr 15 10:06:35 EDT 2007
Hi Christiaan
On Sun, Apr 15, 2007 at 02:03:49PM +0900, Christian K wrote:
> could someone please provide example code for how to make a subclassed ndarray
> pickable? I don't quite understand the docs of ndarray.__reduce__.
> My subclassed ndarray has just one additional attribute.
>
__reduce__ is part of the pickle protocol, which is described at
http://docs.python.org/lib/node321.html
You need to modify __reduce__ to store the complete state of your
custom object, as well as __setstate__ which restores the state on
unpickling.
See the attached code as an example. There, I have an InfoArray,
which is a subclassed numpy.ndarray. The InfoArray contains an
additional member, info, which is a dictionary.
The __reduce__ method calls ndarray's __reduce__, then adds to the
result the state of the InfoArray. Conversely, the __setstate__
method calls ndarray's __setstate__ as well as restoring the info
member.
Regards
Stéfan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: infoarray.py
Type: text/x-python
Size: 1545 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20070415/ebf0a380/attachment.py>
More information about the NumPy-Discussion
mailing list