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 に答える