选项放前面还是后面
子命令的选项必须写在子命令后面。运行下面这段程序,看它数出来的结果: import argparse p = argparse.ArgumentParser() p.add_argument(&qu
阅读更多 →
两个子命令各走各的
下面的解析器有 temp 和 len 两个子命令。运行这段程序,看两次解析各拿到了什么: import argparse p = argparse.ArgumentParser() sub = p.
阅读更多 →
--from 不能直接当属性名
长度子命令想要一个 --from 选项。写成 l.add_argument("--from", dest="src") 而不是直接用,是因为【0】。
阅读更多 →
子命令的名字存在哪
sub = p.add_subparsers(dest="cmd") 之后,用户敲的是 len 还是 temp,解析完从【0】读出来。
阅读更多 →
为什么要子命令
工具要同时支持温度、长度、质量三种换算。用 conv temp …、conv len … 这样的子命令来分,最主要的好处是【0】。
阅读更多 →
补全:加一个带默认值的选项
给解析器加一个 --to 选项,默认值是 f。两次调用,一次给了 --to k,一次没给,把两次取到的目标单位用 / 拼起来输出。
阅读更多 →
补全:让位置参数变成数字
下面的解析器还没把 value 声明成数字。补上 type,让它算出 37 摄氏度对应的华氏度。
阅读更多 →
解析结果是什么样
argparse 解析完,把结果装进一个对象里。运行下面这段程序,看它取出了什么: import argparse p = argparse.ArgumentParser() p.add_argum
阅读更多 →
type=float 干了什么
声明位置参数时写了 type=float。用户敲 37 之后,程序里拿到的是【0】。
阅读更多 →
位置参数和选项
conv.py 37 --to f 里,37 和 --to f 在 argparse 眼里是两类东西。区别在于【0】。
阅读更多 →