我有一个存储在var中的类的名称,我需要从中创建一个对象。 但是我不知道它定义在哪个模块中(如果我这样做,我只会调用getattr(module,var),但我确实知道它是导入的。
我应该检查每个模块并测试是否在那里定义了类?我怎么在python中做到这一点?
如果我在同一个var中有模块+类,怎么能从中创建一个对象怎么办? (即var ='module.class') 干杯, 泽
答案 0 :(得分:1)
globals()[classname]
应该这样做。
答案 1 :(得分:0)
默认情况下,不会在Python中将类添加到全局注册表中。您需要迭代所有导入的模块并查找它。
答案 2 :(得分:0)
不是将类名存储为字符串,为什么不将类对象存储在var中,这样就可以直接实例化它。
>>> class A(object):
... def __init__(self):
... print 'A new object created'
...
>>> class_object = A
>>> object = class_object()
A new object created
>>>