Pickling an instance of a class containing a dict doesn't work
Peter Otten
__peter__ at web.de
Thu Oct 12 13:04:51 EDT 2006
Marco Lierfeld wrote:
> Jon Clements wrote:
>
>>> if you change the above to:
>>>
>>> class subproject:
>>> def __init__(self):
>>> configuration = { }
>>> build_steps = [ ]
>>
>> Of course, I actually meant to write self.configuration and
>> self.build_steps; d0h!
>
> Thank you Jon and Paul, you both were 100% right :)
>
> But I still don't understand, why the list was saved and the dict was
> not... confusing ;)
Chances are you have inadvertently created an /instance/ attribute
build_steps which was then saved:
s = subproject()
# ...
s.configuration["name"] = "my dinner" # modifies the class attribute
s.build_steps = ["hunt", "kill", "cook"] # creates an instance attribute
Peter
More information about the Python-list
mailing list