Python argparse:默认值或指定值

发布于 2021-01-29 19:27:03

我想有一个可选参数,如果仅存在未指定值的标志,则默认为一个值,但是存储用户指定的值,而不是如果用户指定一个值,则存储默认值。是否已经有可用于此的措施?

一个例子:

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

我可以创建一个动作,但想查看是否存在执行此操作的方法。

关注者
0
被浏览
155
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    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也要设置example为1 --example,则包括default=1。也就是说,

    parser.add_argument('--example', nargs='?', const=1, type=int, default=1)
    

    然后

    % test.py 
    Namespace(example=1)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看