gpt4 book ai didi

python - 如何动态地从包中的模块导入类?

转载 作者:行者123 更新时间:2023-11-28 20:53:50 24 4
gpt4 key购买 nike

这可能真的很简单,但我不明白。以下作品:

foo.py

class Foo:
pass

栏.py

module = __import__('foo')
foo = module.__dict__['Foo']

之后,foo 就是预期的类 foo.Foo


然而,如果我将 a.py 放入一个包中,它就会停止工作:

qux/__init__.py

(空文件)

qux/foo.py

class Foo:
pass

栏.py

module = __import__('qux.foo')
foo = module.__dict__['Foo']

运行 python bar.py 出现 KeyError: 'Foo',但模块导入仍然成功。

这是怎么回事,我该如何让它发挥作用?

最佳答案

应用于嵌套模块名称的

__import__ 返回顶层模块/包 - 这里是 qux。但是,所有模块都插入到 sys.modules 中,因此您可以简单地在其中查找 qux.foo

请参阅 __import__() 上的 PyDoc - 那里都有描述。

关于python - 如何动态地从包中的模块导入类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3578506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com