我定义一个包,包括一组模块的动态增长:如何在包中的__init__.py中的子模块中公开每个名称?
- mypackage
- __init__.py
- module1.py
- module2.py
- module3.py
... many more .py files will be added
我可以每个模块在__init__.py
这样暴露每名:
from module1 import *
from module2 import *
from module3 import *
现在,当我import mypackage
在客户端代码,我得到所有在子模块中定义的名称:
# suppose funcA is defined in module1, class B is defined in module2
import mypackage
mypackage.funcA() # call module1.funcA
b = mypackage.B() # module2.B
问题是,我可以定义mypackage中有许多新模块,我不想在每次向包中添加新模块时添加额外的行from modulex import *
至__init__.py
。
在所有子模块中动态导出名称的最佳方法是什么?
也许'eval()'在目录内容上? –
既没有列举出你要导入的东西,也没有从中导入的东西,这会让它很难追踪错误并能够读取,仅仅是我的2美分 – KevinOrr