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

Python中Ellipsis(...)与pass的区别及适用场景咨询

Python中...(Ellipsis)与pass的区别及存根文件中的应用

一、存根文件(.pyi)中的差异

  • ...是PEP 484明确规定的存根文件专用语法,专门用来标记「仅有类型提示、无实际实现」的函数/方法。存根文件的核心作用是给类型检查器提供类型信息,不需要可执行的空逻辑,...能精准传递「实际实现不在存根里(比如在C扩展代码中)」的语义,是存根文件的标准写法。
  • pass在存根文件中虽能让语法合法,但不符合官方规范,属于非标准用法。类型检查器可能兼容,但无法像...那样清晰传达存根的定位。

二、普通Python脚本中的差异

  • pass是标准空语句,仅用于占位保证语法合法,执行时无任何操作,函数用pass时默认返回None。示例:
    def empty_func():
        pass
    print(empty_func())  # 输出 None
    
  • ...是Python内置的特殊常量(对应Ellipsis对象),如果放在函数体中,函数会返回这个对象。示例:
    def return_ellipsis():
        ...
    print(return_ellipsis())  # 输出 Ellipsis
    

三、是否应该在自己的脚本中使用...?

  • 普通业务脚本:除非你明确需要让函数返回Ellipsis对象(比如特定API的语义要求),否则不要用...做空实现,老实用pass,避免语义混淆。
  • 自定义类型存根文件:必须用...,符合PEP规范,能让类型检查器(如mypy)正确识别存根的作用,保证类型提示的准确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 20:03:18