Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 26, 2010 22:39:47

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить класс по имени

допустим, есть несколько классов:
ClassA()
ClassB()
ClassC()

Есть метод, возвращающий имя класса в качестве строки.

Необходимо инициализировать экземпляр класса, зная его имя.
Как это сделать?

Вариант типа

if c=='ClassA':
return ClassA()
if c=='ClassB':
return ClassB()
if c=='ClassC':
return ClassC()
Не подходит, ибо заранее набор классов неизвестен.
(Но предполагается, что система о них знает, т.е. import нужных классов сделан)

P.S. Проще говоря:
Как написать функцию, которая принимает название класса и возвращает соответствующий ему объект?



Отредактировано (Окт. 26, 2010 22:44:31)

Офлайн

#2 Окт. 26, 2010 22:58:06

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

Получить класс по имени

Извиняюсь за нубство. Ответ нашёл :)

def makeObject(classname):
instance = globals().get(classname)
obj = instance()
return obj



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version