rakoth 19.03.2011 13:33 22084841031300526691557290

Допустим есть структура:
start.py
mymodules/myclass.py
В myclass.py:
class MyClass:
pass
в start.py :
classname = "MyClass"
modulename = "mymodules"
importlib.__import__('{0}.{1}'.format(modulename, classname.lower()))
Как теперь объявить новый объект класса classname?

1. SirAnthony 19.03.2011 13:35 Home

classname — это строка же. Делай через зад с помощью getattr, например.

2. rakothSirAnthony /1 19.03.2011 13:39 22084841031300526691557290

так и объекта-то никакого нет, чтобы аттрибут спрашивать. вот если бы былло нечто вроде newinstance(classname)...

3. SirAnthonyrakoth /2 19.03.2011 13:43 Home

Ну ты же наимпортировал чего-то. У него и спрашивай. d = getattr(modulename, classname)() Вот как-то так.

4. rakothSirAnthony /3 19.03.2011 13:57 22084841031300526691557290

Ага, точно. Спасибо.

Do you really want to delete ?