Python项目如何将类和函数暴露到主模块以简化导入路径
实现方案
你只需要在mymodule文件夹下新增一个__init__.py文件,写入以下内容即可:
# 将子模块中的类导入到包顶层命名空间 from .myclass1 import MyClass1 from .myclass2 import MyClass2 # 配置*号导入的白名单,支持from mymodule import *用法 __all__ = ["MyClass1", "MyClass2"]
说明
- 上面的导入语句会把各个单独文件里的类直接挂载到
mymodule包的顶层,所以你可以直接通过import mymodule as mm后调用mm.MyClass1 __all__变量专门用于声明包在使用*通配符导入时需要暴露的对象,刚好满足你第二种导入需求- 你原有的项目结构、子文件内部的导入逻辑、测试文件原有导入逻辑都不需要修改,可以同时兼容新旧导入方式
内容的提问来源于stack exchange,提问作者Will
相关产品推荐
相关产品推荐

