Построение переменных внутри цикла for - PullRequest
0 голосов
/ 21 марта 2019

Допустим, я хочу создать много экземпляров класса, но не хочу записывать имя переменной для каждого экземпляра.

Что я хочу:

value1 = class(value1)
value2 = class(value2)
.
.
. 

Моя идея была:

list = ['One','Two','Three']

for value in list:
    value = class(value)

Результат не тот, который я хотел.Python создает переменную 'value' и переопределяет ее значениями списка.

Извините, что задаю такой простой вопрос, но я не уверен, как с этим справиться.

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Прежде всего, обратите внимание, что вы не должны использовать list в качестве имени переменной, поскольку оно зарезервировано в качестве ключевого слова самим Python. Затем у вас может быть другой список, скажем, instanceList, в который вы будете добавлять каждый вновь созданный экземпляр класса:

myList = ['One','Two','Three']
instanceList = []

for value in myList:
    instanceList.append(class(value))
1 голос
/ 21 марта 2019

Вы можете использовать понимание списка, чтобы создать список экземпляров классов из списка значений:

class A:
    def __init__(self, value):
        self.value = value

values = ['One','Two','Three']
instances = [A(v) for v in values]
>>> print(list(o.value for o in instances))
['One', 'Two', 'Three']
...