Форум сайта python.su
Добрый вечер.
Есть список стрингов. Подскажите пожалуйста, как создать объекты с именами из этого списка?
И как к ним потом обращаться?
Заранее спасибо!
Отредактировано Sergey85 (Окт. 19, 2016 21:18:36)
Офлайн
Или так никто не пишет?
Может надо создать словарь объектов через цикл по списку имён?
типа:
objs={} for name in names: objs[name]=MyClass(name)
Отредактировано Sergey85 (Окт. 19, 2016 21:31:10)
Офлайн
Sergey85да так никто не пишет.
Или так никто не пишет?
globals()["x"]=3
Офлайн
Это типичный вопрос от людей которые не разбираются в программировании. Так никто не делает потому что это бессмысленно. Для этого есть другие структуры данных, например словари с именами в качестве ключей. В исключительных случаях, или когда это делается достаточно осмысленно, можно заиметь класс выполняющий роль контейнера (банальный class Foo: pass) к экземпляру которого можно через setattr(…) присвоить атрибут. Но думаю для вас это пока слишком…
Офлайн
JOHN_16Это я и описал в своём следующем после вопроса сообщении.
Для этого есть другие структуры данных, например словари с именами в качестве ключей.
JOHN_16За эту идею спасибо. Думаю, это как-то так реализуется
В исключительных случаях, или когда это делается достаточно осмысленно, можно заиметь класс выполняющий роль контейнера (банальный class Foo: pass) к экземпляру которого можно через setattr(…) присвоить атрибут. Но думаю для вас это пока слишком…
class Foo: pass conteyner=Foo() class MyClass: def __init__(self,name): self.name=name for name in ['a','b','c']: setattr(conteyner, name, MyClass(name))
Офлайн