我想使用argparse来指定一个带有三个整数值的选项:比如指定一个范围:start,end,step。
parser.add_argument('--range', nargs=3, metavar=('start', 'end', 'step'),
type=int, help="specify a range')
但是,我不清楚如何为所有三个值提供默认值。我是否需要将其定义为字符串并自行解析?
答案 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!')