Hello everybody:
I'd like to use the pickle module to save the state of an object so to
be able to restore it later. The problem is that it holds a list of
other objects, say numbers, and if I modify the list and restore the
object, the list itself is not reverted to the saved one, but stays
with one element deleted.
An example session is the following:

Data is  A [1, 2, 3, 4]
saving a with pickle
Deleting an object: del a[3]
Now data is A [1, 2, 3]
Oops! That was an error: can you please recover to the last saved data?
A [1, 2, 3]     #### I'd like to have here A[1,2,3,4]!!!!!!

Is it the intended behavior for pickle? if so, are there any way to
save the state of my object?

Code follows
-----------------------
class A(object):
        objects = []
-----------------------
then I run  the code:
---------------------------------------
import pickle
from core import A

a = A()

for i in [1,2,3,4]:
        a.objects.append(i)

savedData = pickle.dumps(a)
print "Saved data is ",a
print "Deleting an object"
del a.objects[3]
print a
print "Oops! This was an error: can you please recover the last saved data?"

print pickle.loads(savedData)
--------------------------------------------

Thank you for any help!

Mario
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to