2012-02-26 19 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'とは何ですか? –

答えて

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

作品は、ちょうど文字列にキャストvalueEをタイプして色に追加しなければならなかった – delgeezee

+0

私は、 'valueE'が文字列のままになるように、intキャストを削除しました。私の答えが気に入ったら、この質問の答えとして選択してください。 –

-1
print eval('nodes[0].color%d' % valueE) 
関連する問題