Python,试图实例化使用__import__导入的类,获取''模块'对象是不可调用的'

时间:2010-09-15 04:01:34

标签: python class dynamic import

我一直在研究如何做到这一点,我无法弄清楚我做错了什么,我想用导入来导入一个类,然后实例化它,我正在做这样:

该类,从一个名为“action_1”的文件中,我已经导入/追加到此的路径了)

class Action_1 ():
    def __init__ (self):
        pass

我是如何尝试导入然后实例化它

imprtd_class = __import__('action_1', globals(), locals(), ['Action_1'], -1)

#instantiate the imported class:
inst_imprtd_class = imprtd_class()
>>>> 'module' object is not callable

1 个答案:

答案 0 :(得分:2)

__import__会返回模块,而不会返回fromlist中指定的任何内容。查看__import__ docs并查看以下示例。

>>> a1module = __import__('action_1', fromlist=['Action_1'])
>>> action1 = a1module.Action_1()
>>> print action1
<action_1.Action_1 instance at 0xb77b8a0c>

注意,在上述情况下不需要fromlist,但如果action_1模块位于包中(例如mystuff.action_1)则需要。有关详细信息,请参阅__import__文档。