Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 19, 2016 20:30:51

Sergey85
Зарегистрирован: 2016-10-07
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Объект из строки

Добрый вечер.
Есть список стрингов. Подскажите пожалуйста, как создать объекты с именами из этого списка?
И как к ним потом обращаться?
Заранее спасибо!

Отредактировано Sergey85 (Окт. 19, 2016 21:18:36)

Офлайн

#2 Окт. 19, 2016 21:28:57

Sergey85
Зарегистрирован: 2016-10-07
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Объект из строки

Или так никто не пишет?
Может надо создать словарь объектов через цикл по списку имён?
типа:

 objs={}
for name in names:
    objs[name]=MyClass(name)

Отредактировано Sergey85 (Окт. 19, 2016 21:31:10)

Офлайн

#3 Окт. 19, 2016 22:38:38

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Объект из строки

Sergey85
Или так никто не пишет?
да так никто не пишет.
 globals()["x"]=3



Офлайн

#4 Окт. 19, 2016 23:34:53

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Объект из строки

Это типичный вопрос от людей которые не разбираются в программировании. Так никто не делает потому что это бессмысленно. Для этого есть другие структуры данных, например словари с именами в качестве ключей. В исключительных случаях, или когда это делается достаточно осмысленно, можно заиметь класс выполняющий роль контейнера (банальный class Foo: pass) к экземпляру которого можно через setattr(…) присвоить атрибут. Но думаю для вас это пока слишком…



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Окт. 20, 2016 01:10:50

Sergey85
Зарегистрирован: 2016-10-07
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Объект из строки

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))
Но со словарём, я думаю, удобней.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version