Python,尝试实例化通过__import__导入的类时出现“'module'对象不可调用”

1 投票
1 回答
2174 浏览
提问于 2025-04-16 04:09

我一直在研究怎么做这件事,但我搞不清楚自己哪里出错了。我想用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 个回答

2

__import__ 是一个用来导入模块的函数,它返回的是整个模块,而不是你在 fromlist 中指定的内容。你可以查看这个__import__ 的文档,下面有个例子。

>>> 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__ 的文档。

撰写回答