使用for循环在Python中设置对象列表的属性

Dav*_*ker 0 python for-loop config tkinter list

我编写了一个Python程序,我需要将一组tkinter小部件从启用切换到禁用再返回.我可以这样做......

deadparrotlabel.config(state=DISABLED)
sillywalkslabel.config(state=DISABLED)
vikingslabel.config(state=DISABLED)
dinsdalelabel.config(state=DISABLED)
antpoetrylabel.config(state=DISABLED)
lumberjacklabel.config(state=DISABLED)
nudgenudgelabel.config(state=DISABLED)
saynomorelabel.config(state=DISABLED)
crunchyfroglabel.config(state=DISABLED)
larksvomitlabel.config(state=DISABLED)
Run Code Online (Sandbox Code Playgroud)

但我觉得应该有一个更有效的方式,使用for循环和列表或其他东西.我只是不知道如何让它工作,甚至可以做到.这是我尝试但它不起作用:

labellist = ['deadparrotlabel', 'sillywalkslabel', 'vikingslabel', 'dinsdalelabel', 'antpoetrylabel', 'lumberjacklabel', 'nudgenudgelabel', 'saynomorelabel', 'crunchyfroglabel', 'larksvomitlabel']
for i in lablelist:
    i.config(state=DISABLED)
Run Code Online (Sandbox Code Playgroud)

Python将'i'解释为字符串而不是对象的名称.我想做不可能的事吗?

Ned*_*der 5

您可以自己制作小部件列表:

widgets = [deadparrotlabel, sillywalkslabel, ... ]
for w in widgets:
    w.config(state=DISABLED)
Run Code Online (Sandbox Code Playgroud)