我想有一个可选参数,如果只存在没有指定值的标志,则默认为一个值,但如果用户指定一个值,则存储用户指定的值而不是默认值。是否已经有一个可用的操作?
一个例子:
python script.py --example
# args.example would equal a default value of 1
python script.py --example 2
# args.example would equal a default value of 2
我可以创建一个动作,但想看看是否有一个现有的方法来做到这一点。
最佳答案
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--example', nargs='?', const=1, type=int)
args = parser.parse_args()
print(args)
% test.py
Namespace(example=None)
% test.py --example
Namespace(example=1)
% test.py --example 2
Namespace(example=2)
nargs =’?’表示0或1参数
const = 1当有0个参数时设置默认值
type = int将参数转换为int
如果您希望test.py将示例设置为1,即使未指定–example,那么请包含default = 1。也就是说
parser.add_argument('--example', nargs='?', const=1, type=int, default=1)
然后
% test.py
Namespace(example=1)
网友评论