我正在使用argparse
,我有两个可选参数:
parser.add_argument('-a', '--arg1', default=1, type=int)
parser.add_argument('-b', '--arg2', action='store_true', default=False)
有没有办法设置arg1
默认值" 1"如果仅arg2
设置为True
?
换句话说,我只想在arg2
设置为True
时才执行以下操作:
parser.add_argument('-a', '--arg1', default=1, type=int)
否则,它将被设置为:
parser.add_argument('-a', '--arg1', type=int)
答案 0 :(得分:2)
解析后的测试将是实现此目的的最简单方法:
if args.arg2 and args.arg1 is None:
args.arg1 = 1
您可以将此类测试放在自定义操作中。你必须考虑到(或不)的发生顺序。我还没有弄清楚细节,但我无法想象它比这个解析后的测试更简单。