这是我编写的一些代码,用于理解全局变量的工作原理。
我无法在aaa
中获得print('fuera ' , aaa)
的任何价值。我不确定执行顺序是如何发生的。
import tkinter as tk
global aaa
def primero():
winda = tk.Toplevel()
def on_button():
global aaa
aaa = entry.get()
winda.destroy()
entry = tk.Entry(winda)
button = tk.Button(winda, text="Get", command=on_button)
button.pack()
entry.insert(0,'nada')
entry.pack()
entry.focus_set()
windo = tk.Tk()
primero()
print ('fuera ', aaa)
windo.mainloop()
答案 0 :(得分:0)
我不确定执行顺序是如何发生的
基本上,你是先用一个按钮开始一个窗口。很简单。同时,初始化窗口后的代码(即print语句)继续运行,但只有在单击按钮时才会初始化aaa
。
因此错误。
从更大的角度来看,这里的GUI事件使得全局变量的学习变得比必要的更复杂
如果您想解决问题,只需初始化aaa
import tkinter as tk
aaa = None
如果您想观看此全局变量更改,请在按钮内添加另一个打印语句单击