似乎总是更明智地使用默认操作
例子:
store
而不指定nargs
,这样输出总是如预期的一样,而不是有时为list
,有时则不是。我只是好奇是否错过了什么..例子:
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo')
_StoreAction(option_strings=['--foo'], dest='foo', nargs=None, const=None, default=None, type=None, choices=None, help=None, metavar=None)
>>> parser.add_argument('--bar', nargs=1)
_StoreAction(option_strings=['--bar'], dest='bar', nargs=1, const=None, default=None, type=None, choices=None, help=None, metavar=None)
>>> parser.parse_args('--foo 1 --bar 1'.split())
Namespace(bar=['1'], foo='1')
>>> parser.parse_args('')
Namespace(bar=None, foo=None)
nargs='*'
进行对比,后者总是返回一个列表,而nargs=1
似乎需要额外的工作来管理。 - penchantnargs='*'
可以接受多个值,因此如果您只期望此参数的一个值,则必须自行进行检查,而nargs=1
确保您仅获得一个值,但仍将其存储在列表中。 - gaborous'*'
е’Ң1
д№Ӣй—ҙзҡ„еҢәеҲ«пјҢдҪҶжҲ‘дёҚжҳҺзҷҪдёәд»Җд№ҲдҪ жғіиҰҒnargs=1
иҝ”еӣһдёҖдёӘеҢ…еҗ«дёҖдёӘе…ғзҙ жҲ–иҖ…Noneзҡ„еҲ—иЎЁгҖӮ - penchant