【问题标题】:Is it possible to set argparse's optional argument to a default value based on other optional argument?是否可以根据其他可选参数将 argparse 的可选参数设置为默认值?
【发布时间】:2015-05-20 07:33:42
【问题描述】:

我正在使用argparse,并且我有两个可选参数:

  parser.add_argument('-a', '--arg1', default=1, type=int)
  parser.add_argument('-b', '--arg2', action='store_true', default=False)

只有当arg2 设置为True 时,有没有办法设置arg1 默认值“1”?

换句话说,我只想在 arg2 设置为 True 时执行以下操作:

  parser.add_argument('-a', '--arg1', default=1, type=int)

否则将设置为:

  parser.add_argument('-a', '--arg1', type=int)

【问题讨论】:

    标签: python argparse


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-01-11
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 2011-02-13
      • 2015-08-09
      • 2015-04-21
      • 2019-04-13
      • 1970-01-01
      相关资源
      最近更新 更多