Python, как сделать динамическое имя объекта - PullRequest
0 голосов
/ 13 сентября 2011

у меня есть класс "karte" я хочу знать, есть ли способ создания динамического имени моих новых объектов, нормальное создание объекта было бы

Karta = Karte ()

но мне любопытно что-то вроде этого

Karta [I] = Karte ()

или что-то в этом роде, где я буду номером цикла. и в конце я бы назвал объект как этот

karta1.boja
karta2.boja
karta3.boja

как мне этого добиться, я новичок в python, спасибо.

Ответы [ 2 ]

13 голосов
/ 13 сентября 2011

Вы можете создать список объектов следующим образом:

karta = []
for i in range(10):
    karta.append(karte())

Или с использованием списка:

karta = [karte() for i in range(10)]

Теперь вы можете получить доступ к таким объектам: karta[i].

Чтобы выполнить ваш последний пример, вы должны изменить словарь globals(). Я не одобряю это вообще, но вот как это сделать:

g = globals()
for i in range(10):
    g["karte" + str(i)] = karte()

Это не очень питонично, вы должны просто использовать список.

6 голосов
/ 13 сентября 2011

Если у вас нет реальной необходимости держать объекты вне списка и иметь такие имена, как karta1, karta2 и т. Д. Я бы сделал, как вы предлагаете, и использовал бы список с циклом для инициализации:

for i in some_range:
    karta[i]=karte()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...