python 输出程序所有变量

最近我在编写一个程序,想在tkinter.Text上显示程序的所有变量。(如:__name__的值为:__main__)
我想要达到的结果:

name__的值为:__main
welcome的值为:Hello!

基本的实现逻辑如楼上所述,有两处需修改和完善,一是globals()返回全局变量的字典,需要用items()返回视图对象供拆包遍历,否则会报错。二是在写入文本框时加换行符,分行显示变量及其值。完整可实现代码如下:

from tkinter import *
tk=Tk()
tk.title("MainWindow")
window=tk
txt=Text(window)
welcome='Hello!'
def mycmd():
    for k,v in globals().items():
        txt.insert(END,str(k)+"的值是"+str(v)+'\n')
btn=Button(window,command=mycmd)
txt.pack()
btn.pack()
btn.config(text="显示变量")
tk.mainloop()

from tkinter import *
tk=Tk()
tk.title("MainWindow")
window=tk
txt=Text(window)
def mycmd():
    for k,v in globals():
        txt.insert(END,str(k)+"的值是"+str(v))
btn=Button(window,command=mycmd)
txt.pack()
btn.pack()
tk.mainloop()

对了,还要在tk.mainloop前面加一行:


btn.config(text="显示变量")

不然按钮是空的