我有一个名为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
我该怎么做呢?
答案 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)