1、自动导入模块

import os
import importlib

# 获取当前包的路径
package_path = os.path.dirname(__file__)

# 遍历当前目录下的所有 .py 文件(不包括 __init__.py 本身)
for module in os.listdir(package_path):
    if module.endswith(".py") and module != "__init__.py":
        module_name = module[:-3]  # 去掉 .py 后缀
        importlib.import_module(f"{__name__}.{module_name}")  # 动态导入模块

2、手动控制对外暴漏的模块

import os
import importlib

package_path = os.path.dirname(__file__)
__all__ = []

for module in os.listdir(package_path):
    if module.endswith(".py") and module != "__init__.py":
        module_name = module[:-3]
        __all__.append(module_name)  # 只暴露在 __all__ 里的模块
        importlib.import_module(f"{__name__}.{module_name}")

更多推荐