Как объединить строку до конца оператора команды в Python - PullRequest
1 голос
/ 27 февраля 2012

У меня есть список классов с именем 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 и объединить слово «цвет» и число.Тогда я хочу иметь возможность доступа к этой переменной, такой как

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

Как я могу сделать это или что-то подобное?

Ответы [ 5 ]

3 голосов
/ 27 февраля 2012

Поместите ваши цвета в список или слово вместо отдельных переменных:

self.colors = [colorONE, colorTWO, colorTHREE, colorFOUR, colorFIVE]
print node[0].colors[valueE - 1]
1 голос
/ 27 февраля 2012
valueE = (raw_input("Enter color number"))
print(getattr(nodes[0], "color"+valueE))

Это не проверено.Посмотрите документацию для getattr().

1 голос
/ 27 февраля 2012

Составьте список цветов или словарь.(Я использую словарь в приведенном ниже примере)

>>> color = {1: "X", 2: "Y"}
>>> color[1]
'X'
>>> color[2]
'Y'
0 голосов
/ 27 февраля 2012
print eval('nodes[0].color%d' % valueE)
0 голосов
/ 27 февраля 2012

Попробуйте вместо этого:

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]
...