使用 pickle 和 tkinter 保存数据供以后使用

Saving data with pickle and tkinter for later use

这是我的代码:

import pickle
from tkinter import *
from tkinter.messagebox import *

Game = Tk()

Gold = 0
Multiply = 1

def Save():
    with open('objs.pickle', 'wb') as f:
        pickle.dump([Gold, Multiply], f)

def Load():
    with open('objs.pickle', 'rb') as f:
        return pickle.load(f)

def ClickButton():
    global Gold
    print(Gold)
    Gold +=1 * (Multiply)



Load()
GoldButton = Button(Game, height = 15, width = 25, text="Click!", command ClickButton, bg = "purple")
GoldButton.place(x = 160, y = 95)


save = Button(Game, height = 15, width = 25, text="Click to Save", command = Save)
save.place(x = 380, y = 95)


Game.resizable(width=False, height = False)
Game.geometry('700x450')
Game.title("Gold Farm")

我想要它做什么:

它的问题是,当我用文件中的变量重新打开程序时,它只是将 Gold 和 Multiply 设置为它们的默认值,而不管

这里有什么问题?我该如何修复?

您正在丢弃正在加载的数据。 Load 函数不会将数据保存到变量,它只是 returns 加载的内容。

您需要保存从 Load 返回的值:

try:
    Gold, Multiply = Load()
except IOError:
    Gold, Multiply = 0, 1