考虑程序的三个不同的运行:
python3 prog.py python3 prog.py --x python3 prog.py --x 2
是否可以argparse在第一种情况下,x==None第二种情况下,x==1第三种情况下使用x==2?
argparse
x==None
x==1
x==2
nargs'?'带有const参数的参数可以很好地处理此三向输入。
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参数。
default