接管之后能拿到什么
下面把 error 重写成抛异常。运行这段程序,看两次错误各被接到了什么:
import argparse
class UsageError(Exception):
pass
class QuietParser(argparse.ArgumentParser):
def error(self, message):
raise UsageError(message)
p = QuietParser(prog="conv")
p.add_argument("value", type=float)
p.add_argument("--to", choices=["c", "f", "k"])
got = []
for argv in (["abc"], ["37", "--to", "x"], ["37", "--to", "k"]):
try:
p.parse_args(argv)
got.append("ok")
except UsageError as e:
got.append("err")
print("/".join(got))
全部评论