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
相关产品推荐
相关产品推荐

