错误信息说了什么
接管之后的异常里带着 argparse 的原话。运行下面这段程序,看它从两条错误信息里各认出了什么:
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", required=True)
def kind(argv):
try:
p.parse_args(argv)
return "ok"
except UsageError as e:
m = str(e)
if "invalid" in m:
return "type"
if "required" in m:
return "missing"
return "other"
print(kind(["abc", "--to", "f"]) + "/" + kind(["37"]) + "/" + kind(["37", "--to", "f"]))
全部评论