我的变量没有改变,我知道它没有改变,因为“1”被打印到控制台。 当我按下按钮时,我试图使标签增加。但是当我按下按钮时,变量保持在1。 我做错什么了? 我在网上找了一个答案,但我真的找不到一个我能理解的答案。你知道吗
num = 0
import tkinter
box = tkinter.Tk()
v = tkinter.StringVar()
labels = tkinter.Label(box, textvariable = v)
labels.pack()
def numberz(num,v):
num += 1
v.set(num)
print(num)
class MainWindow():
box.title("My Stupid Program")
buddon = tkinter.Button(box, text='PRESS ME', command = lambda:numberz(num,v))
buddon.pack()
box.mainloop()
您正在更改参数
num
,而不是全局变量num
要更改全局,需要特别引用它。注意
num
是如何在lambda
中不传递的,现在函数中有了global num
。你知道吗在任何情况下,使用globals都应该限制在非常特定的情况下,而不是通用的。你知道吗
相关问题 更多 >
编程相关推荐