使用类型提示时numpydoc文档字符串能否省略类型声明
numpydoc 类型标注规则说明
- 若函数签名已经添加符合PEP 484标准的类型提示,不需要在文档字符串的Parameters、Returns章节重复标注参数/返回值类型,示例中参数a省略类型的写法完全符合numpydoc v1.0及以上版本的规范要求。
- 旧版numpydoc要求必须在文档字符串内写类型,是因为Python早期没有统一的官方类型提示语法,类型信息只能通过文档传递。现在类型提示已经是Python官方标准,IDE、静态检查工具、支持numpydoc的文档生成工具都能自动从签名提取类型信息渲染到最终文档里,重复写类型反而会增加维护成本,很容易出现签名改了但文档里的类型忘改、两边不一致的问题。
- 你给出的示例虽然合规,但有两个可优化的细节:
- 参数a的描述存在拼写错误,
Fist应当改为First - 函数签名已经标注返回值为
float类型,Returns章节里重复写的float同样可以省略,和参数的书写规则保持一致。
- 参数a的描述存在拼写错误,
- 只有一种情况需要在文档里补充类型相关内容:当类型提示无法覆盖参数的特殊约束时。比如参数虽然标注为
int类型,但业务逻辑要求必须传入正整数,这类约束没法通过类型提示表达,直接写在对应参数的描述里即可,不需要重复标注基础类型。
符合规范的最简写法参考:
def add(a: float, b: int) -> float: """计算两个数的和 Parameters ---------- a 第一个加数 b 第二个加数 Returns ------- a与b相加的计算结果 """ return a + b
内容的提问来源于stack exchange,提问作者Andi
相关产品推荐
相关产品推荐

