因此,对于我的介绍性编程课程,我们必须创建一个具有保存/加载功能的游戏,并且我正在尝试测试一些代码以确保其正常工作。保存文件功能
由于某些原因,我无法获得以下功能正常工作。我已经尝试过在Idle中逐行进行,它在那里工作得很好,但是一旦我尝试在一个函数中使用同一个系统,它就不起作用。请帮助?
def save(name,inventory,mapGrid,x,y,enemy):`
choice = 0
file = shelve.open("save_files")
save = {'save1':file['save1'],'save2':file['save2'],'save3':file['save3']}
print("Where would you like to save?")
print("Save 1 -", save['save1']['name'])
print("Save 2 -", save['save2']['name'])
print("Save 3 -", save['save3']['name'])
choice = input("Enter Number:\t")
if choice == 1:
save['save1']['name'] = name
save['save1']['inventory'] = inventory
save['save1']['mapGrid'] = mapGrid
save['save1']['x'] = x
save['save1']['y'] = y
save['save1']['enemy'] = enemy
file['save1'] = save['save1']
file.sync()
if choice == 2:
save['save2']['name'] = name
save['save2']['inventory'] = inventory
save['save2']['mapGrid'] = mapGrid
save['save2']['x'] = x
save['save2']['y'] = y
save['save2']['enemy'] = enemy
file['save2'] = save['save2']
file.sync()
if choice == 3:
save['save3']['name'] = name
save['save3']['inventory'] = inventory
save['save3']['mapGrid'] = mapGrid
save['save3']['x'] = x
save['save3']['y'] = y
save['save3']['enemy'] = enemy
file['save3'] = save['save3']
file.sync()
file.close()
print("Game Saved")
编辑:应该保存字典运行功能后提交[“保存#”],让我访问后的数据,但数据不会保存到货架文件,当我尝试再次访问它没有什么。 ((对不起,应该把它放在正确的位置))
例如,如果我再次运行save()函数,它应该显示与保存文件相关的名称,但它只显示'EMPTY'。
我必须设置为是
文件save_files民生之本[ '保存#'] = { '名': '空'}
它是如何不起作用类型的一致性?为什么它不起作用? – miradulo
您应该更新帖子并提供错误信息等等,以及预期的输出结果。检查[mcve](http://stackoverflow.com/help/mcve) –
运行该函数后,它应该将字典保存到文件['save#']并允许我稍后访问数据,但数据不会'保存到搁置文件中,当我尝试再次访问它时,没有任何内容。 – Sebastian