Python,尝试实例化使用uuu import uuuu导入的类,获取'';模块';对象不可调用';

Python,尝试实例化使用uuu import uuuu导入的类,获取'';模块';对象不可调用';,python,class,dynamic,import,Python,Class,Dynamic,Import,我一直在研究如何做到这一点,但我不知道我做错了什么,我想使用导入来导入一个类,然后实例化它,并按此方式操作: 该类来自一个名为“action_1”的文件,我已经导入/附加了该类的路径) 我是如何尝试导入然后实例化它的 imprtd_class = __import__('action_1', globals(), locals(), ['Action_1'], -1) #instantiate the imported class: inst_imprtd_class = imprtd_cla

我一直在研究如何做到这一点,但我不知道我做错了什么,我想使用导入来导入一个类,然后实例化它,并按此方式操作:

该类来自一个名为“action_1”的文件,我已经导入/附加了该类的路径)

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

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

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

\uuuu导入
返回模块,而不是
源列表中指定的任何内容。查看并查看下面的示例

>>> a1module = __import__('action_1', fromlist=['Action_1'])
>>> action1 = a1module.Action_1()
>>> print action1
<action_1.Action_1 instance at 0xb77b8a0c>
>>a1模块=\uuuu导入('action\u 1',fromlist=['action\u 1']))
>>>action1=a1模块。Action_1()
>>>打印操作1

注意,在上述情况下不需要fromlist,但如果
操作1
模块位于包内(例如
mystuff.action\u 1
),则需要fromlist。有关更多信息,请参阅
\uuuuuu导入\uuuuuuu
文档。

感谢您对此进行清理,它现在可以工作了,我还没有意识到getattr在这方面是必要的case@Rick:不是。这只是另一种方式。我已经更新了答案。。。抱歉耽搁了,我现在有点累:)
>>> a1module = __import__('action_1', fromlist=['Action_1'])
>>> action1 = a1module.Action_1()
>>> print action1
<action_1.Action_1 instance at 0xb77b8a0c>