Ewa*_*ren 6 python python-import python-3.x
我有一个包含多个模块的插件包,每个模块定义一个类(每个类都是一个插件)。
我的包结构如下所示:
plugins
? __init__.py
? first_plugin.py
? second_plugin.py
? third_plugin.py
Run Code Online (Sandbox Code Playgroud)
插件文件通常是这样的,只包含一个类定义(必要时还有一些导入):
plugins
? __init__.py
? first_plugin.py
? second_plugin.py
? third_plugin.py
Run Code Online (Sandbox Code Playgroud)
我希望最终用户能够像这样导入插件:
# in first_plugin.py
class MyFirstPlugin:
...
Run Code Online (Sandbox Code Playgroud)
而不是必须同时输入模块名称(这是当前需要做的):
from plugins import FirstPlugin
Run Code Online (Sandbox Code Playgroud)
有没有办法通过直接在 __init__.py 文件中重新导出模块的类来实现这一点,而不必像这样逐个模块地导入所有内容(当有很多模块时会变得很麻烦):
from plugins.first_plugin import FirstPlugin
Run Code Online (Sandbox Code Playgroud)
我认为这在 Python 中是不可能的。但是,您可以导入整个模块,因此不必单独导入每个类。
例如
from first_plugin import *
Run Code Online (Sandbox Code Playgroud)
让你做
from plugin import # Anything in first_plugin
Run Code Online (Sandbox Code Playgroud)
这有点痛苦,但编写库并不容易(等到你使用 CMake 和 C/C++ 时,你必须指定源树中的每个文件 : D)
| 归档时间: |
|
| 查看次数: |
3814 次 |
| 最近记录: |