AI 可以补函数说明,但注释里的例子也可能写错。用 doctest 运行文档中的示例,能把“这段说明看起来合理”变成可复跑的输入输出检查。
需要用AI补函数注释的Python开发者。本文使用 Python 3.11 或以上版本的标准库,先验证一组人工构造的小样本。AI 负责提出实现或解释差异,结果由本地检查决定;这里没有把模型回答当成真实运行结果。

验证代码注释中的示例前,先定规则
先给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