我认为 nargs='*'
足以处理数量可变的参数。显然不是,我不明白这个错误的原因。
密码:
p = argparse.ArgumentParser()
p.add_argument('pos')
p.add_argument('foo')
p.add_argument('--spam', default=24, type=int, dest='spam')
p.add_argument('vars', nargs='*')
p.parse_args('1 2 --spam 8 8 9'.split())
我认为最终的名称空间应该是 Namespace(pos='1', foo='2', spam='8', vars=['8', '9'])
:
usage: prog.py [-h] [--spam SPAM] pos foo [vars [vars ...]]
error: unrecognized arguments: 9 8
基本上,argparse 不知道把这些额外的参数放在哪里... ... 为什么呢?