Does python argparse have a use case for nargs = 1?

It seems that it would be wiser to use the default action storewithout specifying nargs, so the output will always be as expected, instead of sometimes being list, and sometimes not. I'm just wondering if I missed something.

Example

>>> 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)                                                                                                           
+4
source share
2 answers

Both are default values nargs=Noneand nargs=1expect the same value, but nargs=1put it in a list, for example

Namespace(foo='test')
Namespace(foo=['test'])

nargs=3will require 3 values ​​and put them in a list. *and +also put the values ​​on the list.

nargs=N: https://docs.python.org/3/library/argparse.html#nargs

, nargs = 1 . , .

nargs=1 nargs=N. .

, argparse, , , 1. - . , , , n , 3, , 5, 1, , .

+5

nargs = 1 , "append", , , , , ..

0

All Articles