考虑以下Python 2代码:
我收到的错误信息是:
from argparse import ArgumentParser
p = ArgumentParser(prog="test")
p.add_argument('--bar')
sp = p.add_subparsers()
sp1 = sp.add_parser('foo')
sp1.add_argument('--baz')
p.parse_args(['foo', '--bar'])
我收到的错误信息是:
usage: test [-h] [--bar BAR] {foo} ...
test: error: unrecognized arguments: --bar
这似乎暗示--bar
是test
命令的未识别参数。但实际上,它是foo
子命令的未识别参数。
我认为错误信息应该是:
usage: test foo [-h] [--baz BAZ]
foo: error: unrecognized arguments: --bar
这是argparse的一个bug吗?我能否配置argparse以获得正确的错误信息?