LINUX.ORG.RU

Набор классов в Python


0

0

Подскажите, пожалуйста, как можно в Python создать массив, состоящий из классов, при этом динамически.

Знаю, что в Pyhton массивов нет, но, думаю, что вы меня поняли -- требуется набор из массивов или, если наборы не могут состоять из массивов, то не-помню-как-они-там-называются, кажется ассоциативные массивы :))

Был бы благодарен вам за помощь!

★★★★★

>Подскажите, пожалуйста, как можно в Python создать массив, состоящий из классов,

Берёшь, и создаешь.

>при этом динамически.

В питоне все динамически.

>Знаю, что в Pyhton массивов нет

Ну, питоновский list - вполне себе массив.

>кажется ассоциативные массивы :))

Ну, ассоциативные массивы - это в питоне dict.

Так в чем проблема? в синтаксисе list и dict?

smartly ★★★
()

> создать массив, состоящий из классов
точно из классов, а не из объектов?
ну смотри:
---
def generator(i):
  class A(object):
    def __init__(self):
      self.value = i
      pass

  return A

classes = [generator(x) for x in xrange(10)]
for x in xrange(10):
  klass = classes[x]
  print klass().value
---

phoenix ★★★★
()

ышо одна вариация,
ежели тебе нужено то что в пхп называется массив а в питоне list, делаешь так
list = (ClassA(), ClassB(), ClassC())
или
list = ()
list.append(ClassA())
list.append(ClassB())
list.append(ClassC())

если тебе нужно то, что в пхп назвается ассоциативный массив, а в питоне dict, далаешь так
dict = {}
dict['ClassAInstance'] = ClassA()
dict['ClassBInstance'] = ClassB()
dict['ClassCInstance'] = ClassC()

вот собственно и все, удачи

StDog
()
Ответ на: комментарий от StDog

Это всмысле были объекты, если тебе нужны ссылки на классы, просто убери () после названий классов и все

StDog
()
Ответ на: комментарий от StDog

Спасибо всем большое за помощь! :)

php-coder ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.