为模块导入生成动态绑定
项目描述
一个用于自动完成__all__和在__init__.py文件中绑定子模块的小型Python实用工具。
如何使用
将这些行添加到您的__init__.py文件的顶部。
import allset allset.set_all_submodules(globals()) allset.bind_all_submodules(globals()) del allset
现在,您可以使用import mysubmodule或from mysubmodule import SubModClassDef来引用任何子模块。此外,from mymodule import *将像您手动指定__all__中的所有子模块一样工作。
它是做什么的?
set_all_submodules通过自动检测当前目录中的文件和子模块来设置您的__all__变量。
bind_all_submodules将set_all_submodules中找到的子模块应用于当前命名空间。