problem using pickle

Peter Otten __peter__ at web.de
Sun Mar 13 09:24:05 EDT 2016


Nicky Mac wrote:
> Dear Python team,
> I have studied the excellent documentation, 

That is always a laudable endeavour ;)
> and attempted to make use of
> pickle thus:
>> filename = 'my_saved_adventure'
> import pickle
> class object:

'object' already is the name for a Python built-in; you should avoid 
redefining it.
> def __init__(self,i,.........t) :
> self.id = i
> .....
>> class world:
> def __init__(self):
> self.object
>> class object:

As you already defined 'object' above you now have a name clash with your 
own stuff. I suppose that is because what you post is not your actual code.
> def __init__(self,i,
>> .....then Object instances of object are created ........
>> myworld = world;
> myworld.Object = Object
> fileobj = open(filename,'wb')
> pickle.dump(myworld,fileobj); fileobj.close()
> result = "saved your game to " + filename
>> fileobj = open(filename,'rb')
> myworld = pickle.load(fileobj); fileobj.close()
> Object = myworld.Object
> result = "restored your game from " + filename
>>> The proecedures execute without error
> but a file of only 21b is created containing " €c__main__world q .
> altho there are several k of object instance data.

Unfortunately I cannot tell what might have gone wrong from the outline you 
provide above. Can you make a smaller script that shows the same problem, 
and that you can post in its entirety here? Use cut and paste, do not 
retype! Thank you.


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /