You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何隐藏Python包命名空间中的内部模块,仅对外暴露指定函数?

解决方案

你只需要修改包根目录下的__init__.py文件即可实现需求,操作步骤如下:

  • 首先删除__init__.py中所有显式导入core、sequences模块的语句(如果存在的话)
  • 保留你导入tint函数的语句,示例:from .core import tint
  • 在__init__.py中新增__all__变量,明确指定对外暴露的公共API:
# 示例完整的__init__.py内容
__version__ = "你的版本号"
from .core import tint

__all__ = ["tint"]
  • 如果因为特殊逻辑必须在__init__.py中导入core、sequences模块,导入后主动删除命名空间中的引用即可:
from . import core
from . import sequences
from .core import tint

# 用完后删除模块引用
del core
del sequences

__all__ = ["tint"]

修改完成后重新安装包,再次执行dir(tinted)就会得到你期望的输出。__all__是Python官方约定的公共API声明方式,除了控制dir的输出之外,也会限制from tinted import *语句的导入范围,符合Python包开发的最佳实践。

内容的提问来源于stack exchange,提问作者MystPi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:54:03