交付:五条验收条款一起过
run 已经给好。补全五条验收:正常换算对、单位错交回 3、用法错交回 2、不给子命令打帮助且交回 2、错误不进结果管道。输出五个 1/0。
阅读更多 →
第四步:给工具写一个测试壳
补全 run:调用一次 main,把这次打到 out 的内容和退出码一起交回来(每次调用前把 out 清空)。输出三组用例的「结果:退出码」。
阅读更多 →
第三步:把 main 接起来
解析器和换算都有了。补全 main:解析失败交回 2、没给子命令把帮助打到 hlp 并交回 2、单位错交回 3、成功打印结果交回 0。输出五次调用的退出码、结果管道的内容、帮助有没有打出来。
阅读更多 →
第二步:换算核心
补全 convert:温度先统一成摄氏再换到目标;长度和质量查各自的表,单位不在表里抛 ValueError。输出四次换算的结果。
阅读更多 →
第一步:把解析器搭起来
补全 build_parser:三个子命令 temp / len / mass,每个都有 value(浮点数)、--from(存到 src,默认分别 c / m / kg)和 --to。输出解析出的子
阅读更多 →
整套工具跑一遍
下面是组装好的 conv 精简版。运行它,看五组参数各给出什么(结果或退出码): import argparse LEN = {"m": 1.0, "km":
阅读更多 →
交付前最该验什么
工具写完了。交付前最能一次暴露问题的验法是【0】。
阅读更多 →
为什么 main 要收 argv
整条路线里 main 一直写成 main(argv),而不是在函数里面直接读 sys.argv。这样写最大的收益是【0】。
阅读更多 →
补全:拆开一行入口声明
打包配置里 console_scripts 一行写成 conv = conv.cli:main,意思是「命令 conv 调用 conv.cli 模块的 main 函数」。补全 parse_entry,
阅读更多 →
补全:模拟 shell 找命令
shell 按 PATH 里的顺序找同名可执行文件,找到第一个就停。补全 which,输出 conv 会被解析到哪个目录、找不到时给 none。
阅读更多 →