2010-06-29 77 views
3

我有一些代碼看起來是這樣的:Python代碼重構問題。簡化

self.ui.foo = False 
self.ui.bar = False 
self.ui.item = False 
self.ui.item2 = False 
self.ui.item3 = False 

而且我想將它變成像這樣:

items = [foo,bar,item,item2,item3] 
for elm in items: 
    self.ui.elm = False 

但很明顯,只是有同列在列表中的變量'self.ui'部分是無效的,我不想爲列表中的每個元素輸入'self.ui',因爲這樣做確實不太好。我怎麼能重寫我的第一個代碼,使它像我在說什麼?

回答

6

這裏是你如何做到這一點:

items = ['foo','bar','item','item2','item3'] 
for elm in items: 
    setattr(self.ui, elm, False) 
4

items需要是字符串列表。

items = ['foo', 'bar', 'item', 'item2', 'item3'] 
for elm in items: 
    setattr(self.ui, elm, False)