У меня есть имя класса, хранящегося в var, от которого мне нужно создать объект. Однако я не знаю, в каком модуле он определен (если бы я это сделал, я бы просто вызвал getattr (module, var), но я знаю, что он импортирован.
Должен ли я проходить через каждый модуль и проверять, существует ли там класс? Как это сделать в python?
Что делать, если у меня есть модуль + класс в том же var, как я могу создать объект из него? (т.е. var = 'module.class') Ура, Зе
globals()[classname]
должен это сделать.
Больше кода: http://code.activestate.com/recipes/285262/
Вместо того, чтобы хранить имя класса как строку, почему бы вам не сохранить объект класса в var, так что вы можете создать его экземпляр напрямую.
>>> class A(object):
... def __init__(self):
... print 'A new object created'
...
>>> class_object = A
>>> object = class_object()
A new object created
>>>
Классы не добавляются к глобальному реестру в Python по умолчанию. Вам нужно будет перебирать все импортированные модули и искать его.
globals()
я вижу немного больше, чем ничего. Я особенный?globals()
только показывают имена в текущем модуле ... не так ли?