Python Tkinter:无法使用变量更改标签,变量结果为“;未定义”;

Python Tkinter:无法使用变量更改标签,变量结果为“;未定义”;,python,tkinter,label,Python,Tkinter,Label,我对Python有一个基本的了解,并且我成功地做了一个基本的数字猜测游戏。每当用户输入他们的猜测时,我希望在我的GUI中打印出答案是对还是错。与每次用户猜测时让机器添加一个新标签不同,我想要一个标签,通过在函数中设置的变量进行更新 from tkinter import * from random import * window = Tk() window.title("Guessing Game") window.geometry("600x200") def numCallback():

我对Python有一个基本的了解,并且我成功地做了一个基本的数字猜测游戏。每当用户输入他们的猜测时,我希望在我的GUI中打印出答案是对还是错。与每次用户猜测时让机器添加一个新标签不同,我想要一个标签,通过在函数中设置的变量进行更新

from tkinter import *
from random import *
window = Tk()
window.title("Guessing Game")
window.geometry("600x200")

def numCallback():
    global guess, secretnumber, result
    if int(guess.get()) == secretnumber:
        **result = StringVar()
        result.set('Congratulations! You guessed the number.')**
    if int(guess.get()) > secretnumber:
        **result = StringVar()
        result.set('Too high, try guessing again.')**
    if int(guess.get()) < secretnumber:
        **result = StringVar()
        result.set('Too low, try guessing again.')**

instruction = Label(window, text="Input a guess between 1 to 100.")
instruction.pack()
guess = Entry(window)
guess.pack()
confirmer = Button(window, text="Confirm Guess", command=numCallback)
confirmer.pack()
instruction = Label(window, text="Input a guess between 1 to 100.")
instruction.pack()
***result.trace(window, textvariable=result)***

secretnumber = randint(1, 100)

window.mainloop()
从tkinter导入*
从随机导入*
window=Tk()
窗口标题(“猜谜游戏”)
窗口几何(“600x200”)
def numCallback():
全局猜测、秘密数字、结果
如果int(guess.get())==secretnumber:
**结果=StringVar()
result.set('祝贺您!您猜对了数字')**
如果int(guess.get())>secretnumber:
**结果=StringVar()
result.set('太高,请再次尝试猜测')**
如果int(guess.get())

我用2个星号标记了问题的外部原因,并用3个星号标记了回溯源。当我运行程序时,我得到一个运行时错误,告诉我变量“result”没有定义。我已将变量设置为全局变量,并检查了区分大小写的能力,因此我不确定它为什么不能正常工作。

全局变量
结果
定义在哪里?另外请注意,用星号标记代码不会使它们显示任何不同,也不会使代码无法运行。我建议您通过
#
添加注释以标记行。哦,不要担心星号。我把它添加到代码块就是为了这个,它们不在我真正的代码中。结果在my numCallback函数中全局定义。第一个缩进行。在
numCallback
函数中声明它
global
,并不定义它。在校准
mainloop()
之前,在所有函数之外添加一个
result=StringVar()
.Ooohh。非常感谢。好的,我得到一个新的错误。它告诉我它得到了一个意外的关键字参数“textvariable”。