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

Python函数def后出现的...(省略号)有什么作用?适用场景是什么?

Python 中函数定义后 ... 的作用与使用场景

你看到的...是Python中Ellipsis对象的字面量语法,放在函数/方法体位置时,核心作用是标记当前仅定义接口签名,暂不提供具体实现逻辑,常见使用场景如下:

  • 写类型存根文件(.pyi)
    Python的类型检查工具(如mypy)需要通过存根文件获取第三方库、内置模块的类型信息,这类文件不需要包含实际运行逻辑,只要明确函数、类的参数类型、返回值类型即可,因此全部用...代替函数体。你举例的LockType就是标准库存根的典型写法,用来给threading.Lock这类对象提供类型标注参考。
# 存根文件中的写法示例
def _count() -> int: ...
  • 定义抽象接口
    编写抽象基类的接口规范时,可以用...代替pass占位,相比pass可读性更强,能直观体现「这是预留的待实现接口」的含义:
from abc import ABC, abstractmethod

class BaseCounter(ABC):
    @abstractmethod
    def count(self) -> int: ...
  • 代码结构占位
    搭代码框架时可以先把所有接口的参数、返回值定义完,用...占住函数体位置,后续再补具体实现,这种写法不会触发语法报错,能保证整体结构先跑通。

另外注意你示例里参数默认值位置的...(如blocking: bool = ...)是类型标注的专用写法,用来表示该参数有默认值,但默认值的具体内容不需要在存根中声明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:54:05