gpt4 book ai didi

python - python 和 __import__ 的问题

转载 作者:太空宇宙 更新时间:2023-11-04 07:26:14 26 4
gpt4 key购买 nike

对不起,通用标题,一旦我了解了问题的根源,就会更改它我有以下结构:

foo/
foo/__init__.py
foo/bar/
foo/bar/__init__.py
foo/bar/some_module.py

当我尝试导入 some_module 时:

from foo.bar import some_module

它就像一个魅力。但这对我不利,因为我只知道要在运行时导入的模块的名称。所以如果我尝试:

from foo.bar import *
mod=__import__('some_module')

我得到一个错误。难道我做错了什么?有一个更好的方法吗?为什么会这样?

这是为什么呢?我不太确定我是否完全理解 python 包背后的概念。我认为它们等同于 java 的包,因此

最佳答案

我认为正确的做法是:

mod = __import__('foo.bar', fromlist = ['some_module'])

这样,即使“foo.bar”部分也可以在运行时更改。因此 some_module 将作为 mod.some_module 可用;如果你想在一个单独的变量中使用 getattr:

the_module = getattr(mod, 'some_module')

关于python - python 和 __import__ 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1342128/

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