argparse设置默认为多个args

Oli*_*ver 6 python argparse

我想使用argparse来指定一个带有三个整数值的选项:比如指定一个范围:start,end,step.

parser.add_argument('--range', nargs=3, metavar=('start', 'end', 'step'), 
             type=int, help="specify a range')
Run Code Online (Sandbox Code Playgroud)

但是,我不清楚如何为所有三个值提供默认值.我是否需要将其定义为字符串并自行解析?

Rob*_*obᵩ 10

这对你有用吗?

parser.add_argument('--range', default=[4,3,2], 
                    nargs=3, metavar=('start', 'end', 'step'),
                    type=int, help='specify a range')
Run Code Online (Sandbox Code Playgroud)

演示程序:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--range', default=[4,3,2], nargs=3, metavar=('start', 'end', 'step'),
             type=int, help='specify a range')
print parser.parse_args([])

# prints Namespace(range=[4, 3, 2])
Run Code Online (Sandbox Code Playgroud)


Air*_*Air 5

使用nargs, 提供多个默认值时,请在列表中定义它们 - 请参阅文档本部分的第三个代码片段,其中包含以下示例:

parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
Run Code Online (Sandbox Code Playgroud)