13

I want use argparse to specify a option that take three integer values: like specifying a range: start, end, step.

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

However, it is not clear to me how to provide default values to all three values. Do I need to define it as string and parse it myself?

4

2 回答 2

16

这对你有用吗?

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])
于 2013-09-20T19:16:34.903 回答
3

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

parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
于 2013-09-20T19:20:22.730 回答