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



我有一个名为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

我该怎么做?

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

self.colors = [colorONE, colorTWO, colorTHREE, colorFOUR, colorFIVE]
print node[0].colors[valueE - 1]
制作一个颜色列表或字典。(我在下面的例子中使用的是字典)
>>> color = {1: "X", 2: "Y"}
>>> color[1]
'X'
>>> color[2]
'Y'
valueE = (raw_input("Enter color number"))
print(getattr(nodes[0], "color"+valueE))

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

试试这个:

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]
print eval('nodes[0].color%d' % valueE)

最新更新