2012-02-26 31 views
1

我有一個名爲nodes的類的列表,它由Node類的實例組成。如何在Python中連接字符串到命令語句的末尾

class Node: 
    def __init__(self, bucketNumber ,colorONE, colorTWO, 
       colorTHREE, colorFOUR, colorFIVE): 
     self.bucket = bucketNumber # index 
     self.color1 = colorONE # quantity 
     self.color2 = colorTWO # quantity 
     self.color3 = colorTHREE # quantity 
     self.color4 = colorFOUR # quantity 
     self.color5 = colorFIVE # quantity 

我問用戶他們想要什麼顏色編號。我希望能夠接受這個int並連接單詞「color」和數字。然後我希望能夠訪問該變量,如

valueE = (raw_input("Enter color number")) 
valueE = int(valueE) 
print nodes[0].color+valueE 

我該如何做到這一點或類似的東西?

+0

什麼是'nodes [0] .color'? – 2012-02-27 20:50:19

回答

3

把你的顏色列表或字典,而不是獨立變量:

self.colors = [colorONE, colorTWO, colorTHREE, colorFOUR, colorFIVE] 
print node[0].colors[valueE - 1] 
1

使顏色或字典的列表。 (我使用的字典在下面的例子中)

>>> color = {1: "X", 2: "Y"} 
>>> color[1] 
'X' 
>>> color[2] 
'Y' 
0

試試這個:

class Node: 
    def __init__(self, bucketNumber, colorONE, colorTWO, colorTHREE, colorFOUR, colorFIVE): 
     self.bucket = bucketNumber 
     self.colors = [colorONE, colorTWO, colorTHREE, colorFOUR, colorFIVE] 

valueE = int(raw_input("Enter color number")) 
print nodes[0].colors[valueE-1] 
1
​​

這是未經測試。查閱getattr()的文檔。

+0

這項工作,我只需要輸入一個字符串並將其添加到顏色 – delgeezee 2012-02-26 23:08:31

+0

好了,我刪除了int cast,這樣'valueE'仍然是一個字符串。如果你喜歡我的回答,記得選擇它作爲這個問題的答案。 – 2012-02-27 03:51:44

-1
print eval('nodes[0].color%d' % valueE)