Array of objects lost in unpickling

Jon Clements joncle at googlemail.com
Sun Sep 13 10:48:17 EDT 2009


On 13 Sep, 15:19, Bahadir <bilgehan.bal... at gmail.com> wrote:
> Hi,
>
> I have a class:
>
> class second:
>     a = None
>     b = None
>
> class first:
>     array = []
>
> I populate the array in first class with instances of second, then
> save by:
>
> shelve = shelve.open(),
> shelve["first"] = myfirst
> shelve.close()
>
> When I reopen the shelve from another script, the first class is
> there, but array has no elements. If I reopen the shelve in the same
> script right after shelve.close(), the elements are there.
>
> Also there are no errors printed out.
>
> Any idea why the array of instances are lost?
>
> Thanks,
>
> Bahadir

You most likely want 'array' to be an instance level and not class
level attribute.

class first(object):
    def __init__(self):
        self.array = []

myfirst = first()
myfirst.array.append(23423)

etc...

hth,
Jon.




More information about the Python-list mailing list