我想使用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)
使用nargs, 提供多个默认值时,请在列表中定义它们 - 请参阅文档本部分的第三个代码片段,其中包含以下示例:
parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
Run Code Online (Sandbox Code Playgroud)