我正在动态生成类名,然后想要按名称导入该类以访问静态方法。
这是要在“the_module.py”中导入的类:
class ToImport(object):
@classmethod
def initialize(cls, parameter):
print parameter
根据Blog post,这就是我来的:
theModule = __import__("the_module")
toImport = getattr(theModule, "ToImport")
toImport.initialize("parameter")
但博客示例似乎不完整,因为它给了我一个没有我想要的类ToImport
的模块对象。查看__import__()
documentation向我显示该函数有更多可选属性。
theModule = __import__("the_module", globals(), locals(), ["ToImport"])
为什么我必须提供fromlist
属性?我不能导入所有模块属性吗?
答案 0 :(得分:2)
我完成了你的所作所为,并检索了该课程。
In [1]: theModule = __import__("the_module")
In [2]: toImport = getattr(theModule, "ToImport")
In [3]: toImport.initialize("parameter")
parameter
我正在使用Python 2.6.4。你能进一步解释一下,究竟什么对你不起作用?