Python如何为模块定义默认导出内容以简化导入路径
Python包自定义导出内容的实现方法
可以实现该需求。虽然Python 3.3及以上版本支持隐式命名空间包,无需__init__.py即可将目录识别为包,但要自定义包的公开导出内容、简化导入路径,依然可以通过添加__init__.py文件实现,该文件不会影响原有包的识别逻辑,仅用于补充包的配置。
具体操作步骤
- 第一步:在
/models/adaboost目录下新建名为__init__.py的文件 - 第二步:在该文件中添加导入转发逻辑,示例代码如下:
# 从内层Adaboost模块导入需要对外暴露的类 from .Adaboost import AdaboostClassifier # 可选配置:定义__all__列表,控制`from adaboost import *`语法的导出范围,同时会优化IDE的自动补全提示 __all__ = ["AdaboostClassifier"]
- 第三步:后续导入时即可直接使用简化路径,无需逐层调用内层模块:
# 原来的冗余写法 from models.adaboost.Adaboost import AdaboostClassifier # 简化后的写法 from models.adaboost import AdaboostClassifier
拓展用法
如果需要进一步简化导入路径,还可以在上层包的__init__.py中继续做转发,比如在/models/__init__.py中添加以下内容:
from .adaboost import AdaboostClassifier __all__ = ["AdaboostClassifier"]
之后可直接通过from models import AdaboostClassifier导入目标类。
内容的提问来源于stack exchange,提问作者heresthebuzz
相关产品推荐
相关产品推荐

