2016-02-27 45 views
0

我有這個問題,它需要一個點符號地址,但我需要它的一部分是可以改變的。它不接受變量內容,它認爲變量名稱是地址的一部分。你如何使用變量作爲點符號地址?

for item in sorted(vars(self.buttons)): 
     vars(self.rbuttons)[item] = ttk.Button(self.mainframe, text=vars(self.buttons)[item][0], width=15, command=lambda: self.addCost(vars(self.buttons)[item][1]) 
     vars(self.rbuttons)[item].grid(column=self.colCount,row=self.rowCount,sticky=(W,E)) 

問題出在self.addCost(vars(self.buttons)[item][1])。 我需要arg來說:self.buttons.item_value[1]

你是怎麼做到的?謝謝。

回答

1

您可以使用getattrsetattr功能:

class M: 
    def __init__(self): 
      self.moo = 'default' 

m = M() 
print(getattr(m, 'moo')) # 'default' 
setattr(m, 'moo', 'changed') 
print(getattr(m, 'moo')) # 'changed' 
+1

您的示例中的cortect用法是'GETATTR(男, '哞哞')'。 –

+0

謝謝@Klaus D.,我的Python現在有點生鏽。 –