是否可以根据其他可选参数将argparse的可选参数设置为默认值?

时间:2015-05-19 23:04:46

标签: python argparse

我正在使用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)

1 个答案:

答案 0 :(得分:2)

解析后的测试将是实现此目的的最简单方法:

if args.arg2 and args.arg1 is None:
    args.arg1 = 1

您可以将此类测试放在自定义操作中。你必须考虑到(或不)的发生顺序。我还没有弄清楚细节,但我无法想象它比这个解析后的测试更简单。