Argparse可选参数,如果指定了默认值,则默认值不同

发布于 2021-01-29 15:04:51

考虑程序的三个不同的运行:

python3 prog.py
python3 prog.py --x
python3 prog.py --x 2

是否可以argparse在第一种情况下,x==None第二种情况下,x==1第三种情况下使用x==2

关注者
0
被浏览
71
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    nargs'?'带有const参数的参数可以很好地处理此三向输入。

    In [2]: parser = argparse.ArgumentParser()
    In [3]: parser.add_argument('-x','--x', nargs='?', type=int, const=1)
    ...
    In [4]: parser.parse_args([])
    Out[4]: Namespace(x=None)
    In [5]: parser.parse_args(['-x'])
    Out[5]: Namespace(x=1)
    In [6]: parser.parse_args(['-x','2'])
    Out[6]: Namespace(x=2)
    

    我也可以给它一个default参数。

    如何使用argparse在python中添加多个参数选项?



知识点
面圈网VIP题库

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

去下载看看