pickling the objects returned by array.array()

J

John Machin

Googling for "pickle array" in comp.lang.python yields old messages that
show a PickleError -- plus one message where Alex Martelli writes "I am
but an egg" :O)
Looks like arrays are NOW (2.4.1) pickleable but not unpickleable -- see
below.
I appreciate that arrays are inherently not pickleable because of the
type code.
However:
(1) Anyone know why/when the world changed?
(2) If we had alternative constructors like array.iarray(contents) in
parallel to array.array('i', contents), those objects could be
pickled/unpickled -- yes/no?

Cheers,
John
====================
Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information..... pass
....
>>> foo = Foo()
>>> foo.ia = array.array('i', [3,2,1])
>>> foo.ia array('i', [3, 2, 1])
>>> s = pickle.dumps(foo, -1)
>>> bar = pickle.loads(s)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "C:\Python24\lib\pickle.py", line 1394, in loads
return Unpickler(file).load()
File "C:\Python24\lib\pickle.py", line 872, in load
dispatch[key](self)
File "C:\Python24\lib\pickle.py", line 1097, in load_newobj
obj = cls.__new__(cls, *args)
TypeError: array() takes at least 1 argument (0 given)
===========
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,832
Latest member
GlennSmall

Latest Threads

Top