0
Python初学者问题在这里。我尝试在我正在创建的基于文本的游戏中使用pickle保存和加载对象,并且列表变量未按预期方式加载。这是我写来测试该问题的代码(在这个例子中)初始化之外初始化保存和载入OK(在这个例子中Y),但变量列表中pickle没有保存(或加载?)对象列表变量__init__
import pickle
class my_class(object):
def __init__(self, x):
self.x = x
self.y = [1,2,3]
a = [4,5,6]
b = 8
def save(object1):
print("Game saved")
pickle_out = open("saveobject1","wb")
pickle.dump(object1, pickle_out)
pickle_out.close()
def load():
print("Loading......")
pickle_in = open("saveobject1","rb")
object1 = pickle.load(pickle_in)
return object1
object1 = my_class(10)
print ("object1.x = " + str(object1.x))
print ("object1.y = " + str(object1.y))
print ("object1.a = " + str(object1.a))
print ("object1.b = " + str(object1.b))
print ("\n")
answer = input("Would you like to save (s) or load (l)?: ")
if answer == "s":
save(object1)
object1.x = 20
object1.y[2] = 6
object1.a[2] = 12
object1.b = 16
if answer == "l":
object1 = load()
print ("object1.x = " + str(object1.x))
print ("object1.y = " + str(object1.y))
print ("object1.a = " + str(object1.a))
print ("object1.b = " + str(object1.b))
print ("\n")
表变量不。但是,init以外的非列表变量会保存并加载。预先感谢您的建议。
非常感谢您的回答,现在更有意义。我想在游戏中保存的列表是世界地图,它是一个总共包含42个元素的列表列表,所以我想让它成为一个实例变量比单独保存更容易。除非有一种简单的方法来保存我不知道的清单? – Lang0n