如何在Python中将字符串连接到命令语句的末尾

时间:2012-02-26 22:23:31

标签: python dynamic command polymorphism concatenation

我有一个名为nodes的类列表,它由Node类的实例组成。

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

我该怎么做呢?

5 个答案:

答案 0 :(得分:3)

将颜色放在列表或字典中,而不是单独的变量:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

valueE = (raw_input("Enter color number"))
print(getattr(nodes[0], "color"+valueE))

这是未经测试的。查看getattr()的文档。

答案 3 :(得分: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]

答案 4 :(得分:-1)

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