I'm trying to pickle an instance of a class. It mostly works just fine -- I can save the pickle to a file, restore it from that file, and it's mostly okay. The problem is, some lists seem to disappear. For example (snipped and crunched from the code giving me trouble):
--- class InitGame: value = False journal = [] game.InitGame() def Save(): global game import cPickle, gzip, os # Change some data game.journal.append("A value") game.value = True pickles = {'game': game} jar = gzip.open("pickefile", 'wb') cPickle.dump(pickles, jar, 2) jar.close() def Load(): global game import gzip, os, cPickle jar = gzip.open("picklefile", 'r') loaded = cPickle.load(jar) jar.close() game = loaded["game"] --- Now, if I save a pickle, then load it back in, I'll get an instance of InitGame called "game", and game.value will be true, but the list "journal" will be empty. Am I missing something obvious about the pickle spec? Am I doing something wrong? Or should I be hunting for a deeper bug in the code? I've noticed that pretty much anything that's a list isn't saving to the pickle (or loading from the pickle... it's hard to tell which). -- http://mail.python.org/mailman/listinfo/python-list