AI 写的代码注释怎样核对?用 doctest 检查文档里的输入输出例子

AI 可以补函数说明,但注释里的例子也可能写错。用 doctest 运行文档中的示例,能把“这段说明看起来合理”变成可复跑的输入输出检查。

AI 可以补函数说明,但注释里的例子也可能写错。用 doctest 运行文档中的示例,能把“这段说明看起来合理”变成可复跑的输入输出检查。

需要用AI补函数注释的Python开发者。本文使用 Python 3.11 或以上版本的标准库,先验证一组人工构造的小样本。AI 负责提出实现或解释差异,结果由本地检查决定;这里没有把模型回答当成真实运行结果。

AI 写的代码注释怎样核对?用 doctest 检查文档里的输入输出例子

验证代码注释中的示例前,先定规则

先给AI真实函数与既定规则,只让它补说明和例子,不改实现。例子至少覆盖正常、空输入与拒绝条件,避免注释把一个窄函数描述成万能转换器。

doctest采用类似交互式解释器的格式,>>>表示输入,后面的行表示期望输出。它比较的是示例结果,不会自动推导业务规则。

本例解析严格十进制整数文字,拒绝带空格和小数。文档例子需要与函数的拒绝范围一致。

给 AI 的输入要包含什么

把下面这份输入说明和你的实际样本一起交给可用的 AI 编程助手。示例只含虚构数据;对真实材料先去除账号凭据和个人信息。

为下面parse_count补docstring,说明只允许ASCII数字、不接受空格和负数,添加正常与异常示例。保留实现不变,使用doctest验证。不要称函数支持任意数字格式。

要求模型保留检查条件,并把它认为缺少的业务定义列出来。若回答改变了输入字段、忽略异常分支或直接删除原材料,先要求修正,再运行。提示词的作用是缩小任务范围,验收仍以代码和数据为准。

保存并运行最小验证程序

下方程序把关键规则和验证用例放在同一个可复跑示例中,便于先理解输入如何变成输出,再用它检查 AI 给出的实现。

新建一个空目录,把下面代码保存为 check.py,在该目录打开终端,运行 python -X utf8 check.py。代码自带示例输入,不需要安装第三方库。

import doctest, re
def parse_count(text):
    """把ASCII数字文本转为整数。
    >>> parse_count('002')
    2
    >>> parse_count(' 2')
    Traceback (most recent call last):
    ...
    ValueError: invalid count
    """
    if not isinstance(text,str) or re.fullmatch('[0-9]+',text) is None:
        raise ValueError('invalid count')
    return int(text)
result=doctest.testmod()
assert result.failed==0 and result.attempted==2
print('examples',result.attempted,'failed',result.failed)

怎样判断结果符合要求

输出examples 2 failed 0。把docstring中的2改成3后,应出现失败;把它改回后再运行,确保检查真的读取注释而不是只调用函数。

下方是这份最小示例在本地执行得到的输出。它验证示例程序与断言的关系,不代表任何 AI 模型一次就能生成同样代码,也不构成性能或生产可靠性结论。

examples 2 failed 0

异常示例中的省略号用于表示堆栈中间部分;关键异常类型和message仍须准确。

不要在注释里写真实密钥或不稳定网络响应。可重复示例应尽量使用固定本地输入。

哪些失败必须停下来处理

doctest适合简短示例,复杂测试环境、随机结果与大量边界仍应交给独立测试。

对象repr、路径分隔符与库版本会影响文本比较。不要为消除差异直接开启宽松选项,而不查原因。

接入自己的任务前再核对一次

让AI标出注释里的每个承诺,对应到实现或测试;没有实现支撑的能力删除。

代码改动后同步重跑doctest,把文档检查加入现有验证流程。

资料与适用范围

doctest查找交互式Python示例并比较实际结果与注释中的预期。以下链接核对于 2026-10-03;运行环境及额外依赖按本文前述说明。

相关基础可阅读 AI 代码解释工具怎么用?用 Copilot Ask 看懂函数并核对输入输出。本文的重点是验证代码注释中的示例,可以把两项检查作为不同步骤保留。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33346.html

赞 (0)
AI小管家的头像AI小管家
让 DeepSeek 解释接口测试怎么落地?把响应约定变成可复跑断言
上一篇 4小时前
让 Claude 检查 Python 代码规范:用 AST 找出星号导入,并保留准确行号
下一篇 4小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部