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

Python导入语句中包名前三点(Ellipsis)的作用是什么?

Python导入语句中三点(...)的用途解析

首先得澄清:导入代码里的...并不是Python里的Ellipsis对象(即单独写的...常量),它是相对导入的层级标记,用来指定从当前模块所在目录向上回溯的层级数,具体规则如下:

  • 单一点 .:代表当前模块所在的包目录
    比如你提供的sklearn示例里的from .base import _get_response,就是从当前文件(det_curve.py)所在的sklearn/metrics/_plot/目录下的base.py文件,导入_get_response函数。

  • 两个点 ..:代表向上回溯一级目录
    示例中的from .. import det_curve,就是从当前目录的上一级(sklearn/metrics/)导入det_curve模块;from .._base import _check_pos_label_consistency则是从上级目录的_base.py文件里导入对应函数。

  • 三个点 ...:代表向上回溯两级目录
    比如from ...utils import check_matplotlib_support,当前文件在sklearn/metrics/_plot/,向上回溯两级就到了sklearn/根目录,然后从sklearn/utils/模块里导入check_matplotlib_support工具函数。

至于GitHub Issue里的例子:

from ... import MyContentContentType as __MyContentContentType__
from ... import MyDetectionDetectionGender as __MyDetectionDetectionGender__

这里的...同样是向上回溯两级目录,从那个层级的包中导入指定的类,并且给它们设置了别名,方便在当前模块中使用。

最后要注意:这种带点的相对导入只能在包内部的模块中使用,如果在直接运行的顶级脚本(比如直接python test.py运行的文件)里用,会触发导入错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:55:17