Python argparse模块中nargs用法的深入解析
nargs
是 argparse
模块中用来指定参数的数量的属性。不同的 nargs
取值有不同的含义,下面是一些常用的用法:
-
nargs=None
(默认值):表示该参数只能接收一个值。例如:--foo 123
。 -
nargs='?'
:表示该参数最多接收一个值。如果提供了值,则使用该值;如果没有提供值,则使用默认值或None
。例如:parser.add_argument('--foo', nargs='?', default='default_value', help='An optional parameter')
使用方法:
script.py --foo 123 # foo = '123' script.py --foo # foo = 'default_value' script.py # foo = 'default_value'
-
nargs='*'
:表示该参数可以接收零个或多个值,并将这些值作为一个列表。例如:parser.add_argument('--foo', nargs='*', help='Zero or more parameters')
使用方法:
script.py --foo 123 456 # foo = ['123', '456'] script.py --foo # foo = [] script.py # foo = None
-
nargs='+'
:表示该参数必须接收一个或多个值,并将这些值作为一个列表。例如:parser.add_argument('--foo', nargs='+', help='One or more parameters')
使用方法:
script.py --foo 123 456 # foo = ['123', '456'] script.py --foo # 错误:参数必须至少有一个值
-
nargs=整数
:表示该参数必须接收指定数量的值,并将这些值作为一个列表。例如:parser.add_argument('--foo', nargs=2, help='Exactly two parameters')
使用方法:
script.py --foo 123 456 # foo = ['123', '456'] script.py --foo 123 # 错误:参数必须有两个值
作者:小米人er