cPickle and subclassing lists?
pavlovevidence at gmail.com
Fri Apr 17 23:07:50 CEST 2009
On Apr 17, 10:13 am, Reckoner <recko... at gmail.com> wrote:
> I have a large class that is a child of list. I need to pickle it, but
> it's not working. For example, I have reduced it to the following:
> class Mylist(list):
> def __init__(self,x=):
> and I cannot even get this to pickle right.
> >> w=Mylist([1,2,3])
> >> dumps(w)
> PicklingError: Can't pickle <class '__main__.p'>: attribute lookup
> __main__.p fa
> I'm using python 2.5 on win32.
> any help appreciated.
It worked for me.
Wild guess: you've defined Mylist in a module (or, rather, you defined
class p in an module and assigned Mylist to it), but you are exec'ing
the module rather than importing it, ostensibly because importing a
module won't load any changes you've made into the interpreter. Well,
doing that will cause funny things to happen when pickling. If you're
doing that, consider the reload function instead (although it has it's
I'd highly recommend against pickling an instance of a class that
isn't defined in, and loaded from, a regular module. Don't pickle
instances of classes defined at the interpreter or through exec.
More information about the Python-list