如何为不同的变量定义组

时间:2017-04-14 10:23:45

标签: python tkinter

我正在学习处理Python,实际上我把重点放在了Tkinter上。所以我想用问题和清单编写一个界面代码。如果您选择一个答案,您应该获得积分,如果您有一个积分,您应该得到一个结果。我认为这是一种考验。

对于这个项目,我想将我的清单对象分组,例如在组a中是变量1,5和8,Python应该打印我选择一个组的时间。

我的问题是,我不知道如何定义这些群组。我相信我可以写一些类似" a = var1,var5,var8"但它没有用。

感谢您的帮助!我希望我的英语是可以理解的。 :) LoveSpock

这是我的代码。如果它运行,我有可能名字中的变量名称有意义,这是测试名称。此外,它尚未准备好。 :)

*from Tkinter import *
import sys
master = Tk()
var = IntVar()
master.geometry('1500x1000') #Abmessung Fenster
master.title('test') #Tittel Fenster
def create_window(): #Definion und Festlegung neues Fenster
    toplevel = Toplevel()
    toplevel.title('result')
    toplevel.geometry('1500x1000')
    toplevel.focus_set()
def var_states(): #Zeigt wie oft angeklickt wurde
    print('%s %s %s %s' % (var1.get(), var2.get(), var3.get(), var4.get()))

a#Erzeugung Checkliste----------------------------------------------------------------
Label(master, text='Choose one answer', font=('times', 30)).grid(row=0, sticky=W)
var1 = IntVar()
Checkbutton(master, text='male', variable=var1).grid(row=1, sticky=W)
var2 = IntVar()
Checkbutton(master, text='female', variable=var2).grid(row=2, sticky=W)
var3 = IntVar()
Checkbutton(master, text='male1', variable=var3).grid(row=3, sticky=W)
var4 = IntVar()
Checkbutton(master, text='female1', variable=var4).grid(row=4, sticky=W)
a#------------------------------------------------------------------------------------
a = var1
b = var2
c = var3
d = var4
Button(master, text='solve', command=var_states).grid(row=5, sticky=W, pady=4) #Button fuer 'zeigt wie oft angeklickt wurde'
Button(master, text='forward', command=create_window).grid(row=6, sticky=W, pady=4)#Button neues Fenster
master.mainloop()*

1 个答案:

答案 0 :(得分:0)

将变量存储在另一个变量中,并不一定是一种干净的方法。

我建议使用eval,将您希望作为字符串访问的变量存储在列表中,然后评估该字符串的内容。这看起来像是:

var1 = "dogs"
var2 = "cats"
var3 = "hens"

var_list = ["var1", "var3"]

for variable in var_list:
    print(eval(variable))

打印:

dogs
hens

希望这有帮助!

请注意,eval通常应该在这样的场景中使用,而不是在您接受用户输入的场景中使用,因为它们的代码可能会在您的程序中运行。但是,避免这种情况,eval在这里应该很好。