Python,尝试实例化使用 __import__ 导入的类,得到“模块”;对象不可调用

发布于 2024-09-19 06:47:57 字数 449 浏览 3 评论 0原文

做:

我一直在研究如何做到这一点,但我不知道我做错了什么,我想使用 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

I've been researching how to do this and I can't figure out what I am doing wrong, I want to use import to import a class and then instantiate it and am doing it as so:

the class, from a file called "action_1", I have already imported / appended the path to this)

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

how I am trying to import then instantiate it

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

说好的呢 2024-09-26 06:47:57

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

__import__ returns the module, not anything specified in the fromlist. Check out the __import__ docs and see the example below.

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

Note, the fromlist is not required in the above case, but if the action_1 module was within a package (e.g. mystuff.action_1) it is required. See the __import__ docs for more info.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文