argparse设置默认为多个args

时间:2013-09-20 19:03:36

标签: python argparse

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

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

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

2 个答案:

答案 0 :(得分:6)

这对你有用吗?

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

演示程序:

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])

答案 1 :(得分:2)

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

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