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 # 错误:参数必须有两个值