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

如何实现Python文件导出特定可导入函数及限制仅导出单个函数

如何配置Python模块导出特定函数?

嘿,我来帮你把这个问题讲明白!在Python里控制模块对外暴露的内容,核心就是用__all__这个特殊变量,咱们结合你的例子一步步说。

通用思路:用__all__定义公开接口

Python模块里的__all__是一个字符串列表,专门用来指定当别人用from 模块名 import *这种方式导入时,能拿到哪些内容。虽然它不是强制的访问限制(比如直接import 模块名后还是能访问未列在__all__里的内容),但这是Python社区公认的规范,用来明确模块的公开API,引导开发者只使用你允许的部分。

针对你的try.py的具体修改

你的try.py代码是这样的:

g = 47
def A(): print('a')
def B(): print('b')

要让外部只能导入函数A,只需要在文件末尾添加__all__列表,把'A'放进去就行:

g = 47
def A(): print('a')
def B(): print('b')

__all__ = ['A']

这样做之后:

  • 当别人执行from try import *时,只会导入函数A,全局变量g和函数B都不会被导入;
  • 如果有人硬要写from try import B,虽然技术上能成功,但__all__已经清晰地告诉了使用者,A才是模块对外提供的合法接口,B属于内部实现,不应该被外部调用。

额外优化:用下划线标记“私有”内容

如果你想进一步暗示B是内部函数,不想被外部访问,可以把它的名字改成_B(前面加单个下划线):

g = 47
def A(): print('a')
def _B(): print('b')

__all__ = ['A']

这种命名方式是Python里的惯例,工具和其他开发者看到下划线开头的标识符,就会明白这是模块内部用的,不应该被外部导入或依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 09:57:38