1

所以我正在制作一个python游戏,我正在尝试实现一个保存/加载系统。我有保存部分但是我制作的加载功能不起作用。当我将 cPickle.load 分配给一个新列表时,它没有注册。

def save():
    file = open('save.txt', 'wb')
    cPickle.dump(GameState, file)
    file.close()

def load():
    inFile = open('save.txt', 'rb')
    newList = cPickle.load(inFile)
    inFile.close()

请帮忙,谢谢!

4

1 回答 1

3

您可能忘记在以下位置返回您的列表load

def load():
    inFile = open('save.txt', 'rb')
    newList = cPickle.load(inFile)
    inFile.close()
    return newList

请注意,加载文件的更 Pythonic 是:

def load(name_of_your_saved_file):
    with open(name_of_your_saved_file, 'rb') as inFile:
        newList = cPickle.load(inFile)
    return newList

在这里,我们使用 Python 中所谓的上下文(with...as语句),这对于确保自动调用您的文件非常有用。最好不要在函数中硬编码文件名,而是将其作为参数传递。

当你调用你的load函数时,你会得到你放入泡菜的东西,GameState在你的情况下。

game_state_loaded = load('save.txt')
于 2012-09-02T18:34:06.833 回答