我希望能够从动态指定的模块动态指定类引用,并将该类引用传递给第三方库,然后第三方库使用它。但是当我这样做时,我不想调用类本身(以及类中的__init__
方法),这是图书馆要做的。
我目前有这个:
import importlib
import thirdpartylib
# Load the module
the_module = importlib.import_module('my_module')
# Now the class
the_class = getattr(the_module, 'MyClass')()
thirdpartylib.process(the_class)
但当然,getattr()
会运行我不想要的__init__
方法。
如何在不创建实例的情况下传递对类的引用并触发__init__
?
答案 0 :(得分:2)
the_class = getattr(the_module, 'MyClass')
这将是班级。
the_class = getattr(the_module, 'MyClass')()
这是班级的一个实例。您必须删除尾随()
。