В настоящее время я пытаюсь обновить мою программу в словаре Pickle, как только пользователь нажмет кнопку. Всякий раз, когда я пытаюсь обновить эту строку, ничего не происходит. Что я делаю не так?Словарь рассола не обновляется - Python 3.4
Save/Load/Defaults:
BACKGROUNDCOLOR = ('#000000')
FOREGROUNDCOLOR = ('#FFFFFF')
default = ('default')
setupcomplete = ('False')
data = {
'background_color' : BACKGROUNDCOLOR,
'foreground_color' : FOREGROUNDCOLOR,
'complete_setup' : setupcomplete,
'user_name' : default
}
def load():
print('load')
with open("./Minetick_Data/datasave", "rb") as f:
data = pickle.load(f)
def save():
print('save')
with open("./Minetick_Data/datasave", "wb") as f:
pickle.dump(data, f)
def update():
setupcomplete = 'True'
save()
Это где я пытаюсь обновить данные [ 'complete_setup']/setupcomplete:
class ProgramSetup(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
ProgramSetup.configure(self, background = BACKGROUNDCOLOR)
titleLabel = tk.Label(self, text = "Program Setup", font = TITLE_FONT, background = BACKGROUNDCOLOR, foreground = FOREGROUNDCOLOR)
finishButton = tk.Button(self, text = "Finish", command = lambda: combine_funcs(update, controller.show_frame(StartPage)))
titleLabel.pack(padx = 10, pady = 10)
finishButton.pack(padx = 10)
Всякий раз, когда я запускаю программу, хотя, он начинает с по умолчанию (False вместо True)
Возможно, потому, что вы используете '' False'' вместо 'False'. Первая строка, вторая - логическое значение. То же самое с «Истиной». – Kamejoin
Я не запускаю ваш код, но я думаю, что проблема заключается в том, что вы делаете 'data = pickle.load (f)', этот шаг полностью меняет значение первого словаря данных. Я даже не вижу правильного использования словаря данных в вашем выписке. – Kamejoin
Нажимаете кнопку «Готово»? – saulspatz