gpt4 book ai didi

python - 从 __init__.py 重新导出模块的正确方法

转载 作者:行者123 更新时间:2023-12-03 17:12:24 25 4
gpt4 key购买 nike

我有一个包含多个模块的插件包,每个模块定义一个类(每个类都是一个插件)。

我的包结构如下所示:

plugins
├ __init__.py
├ first_plugin.py
├ second_plugin.py
└ third_plugin.py

插件文件通常看起来像这样,只包含一个类定义(必要时还有一些导入):

# in first_plugin.py

class MyFirstPlugin:
...

我希望最终用户能够像这样导入插件:

from plugins import FirstPlugin

而不必键入模块名称(这是当前需要做的):

from plugins.first_plugin import FirstPlugin

有没有办法通过直接在 __init__.py 文件中重新导出模块的类来实现此目的 没有 必须像这样逐个模块地导入所有内容(当有很多模块时,这变得很麻烦):

# in __init__.py

from .first_plugin import FirstPlugin
from .second_plugin import SecondPlugin
from .third_plugin import ThirdPlugin

最佳答案

我认为这在 Python 中是不可能的。但是,您可以导入整个模块,因此您不必单独导入每个类。

例如

from first_plugin import *

让你做

from plugin import # Anything in first_plugin

这有点痛苦,但编写库并不容易(等到你使用 C/C++ 的 CMake,你必须在源代码树中指定每个 单个 文件:D)

关于python - 从 __init__.py 重新导出模块的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60440945/

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