用choices给命令行参数设置范围

2020年2月4日 / 20次阅读 / Last Modified 2020年2月4日
argparse模块

argparse模块的add_argument函数,有一个choices参数,我们可以通过此参数来给命令行参数的取值设置一个任意的范围。在命令行参数取值范围小而且有限的情况下,此方法还是很方便的。

下面的代码,给参数设置了一个取值范围:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--cc', choices=['1','2','3'])
args = parser.parse_args()

--cc这个命令行参数的取值范围是'1','2'和'3',没有别的。

E:\py>python arg.py --h
usage: arg.py [-h] [--cc {1,2,3}]

optional arguments:
  -h, --help    show this help message and exit
  --cc {1,2,3}

E:\py>python arg.py --cc 1

E:\py>python arg.py --cc 2

E:\py>python arg.py --cc 3

E:\py>python arg.py --cc 4
usage: arg.py [-h] [--cc {1,2,3}]
arg.py: error: argument --cc: invalid choice: '4' (choose from '1', '2', '3')

默认的参数值类型,都是字符串!

choices内的元素类型,要跟type保持一致,下面的代码,命令行参数的取值范围就是int类型:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--cc', type=int, choices=[1,2,3])
args = parser.parse_args()

choices的值是一个集合,上面的示例都是list,还可以是tuple或set。

-- EOF --

本文链接:https://www.pynote.net/archives/1786

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top