无法从类中获取变量的值

时间:2016-08-06 18:36:05

标签: python

这是我编写的一些代码,用于理解全局变量的工作原理。

我无法在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()

1 个答案:

答案 0 :(得分:0)

  

我不确定执行顺序是如何发生的

基本上,你是先用一个按钮开始一个窗口。很简单。同时,初始化窗口后的代码(即print语句)继续运行,但只有在单击按钮时才会初始化aaa

因此错误。

从更大的角度来看,这里的GUI事件使得全局变量的学习变得比必要的更复杂

如果您想解决问题,只需初始化aaa

即可
import tkinter as tk
aaa = None 

如果您想观看此全局变量更改,请在按钮内添加另一个打印语句单击