如何设置互斥变量的默认值,但是在不提供参数时将其禁用?

时间:2019-03-05 23:10:33

标签: python argparse default-value

我是argparse的新手,不知道如何设置互变量的默认值。特别是:

我有两个变量,应该只设置其中一个。例如:

import argparse

PARSER = argparse.ArgumentParser()

GROUP = PARSER.add_mutually_exclusive_group()

GROUP.add_argument(
        '--a',
        type=int,
        nargs='?',
        const=1,
        default=1)

GROUP.add_argument(
        '--b',
        type=int)

PARSER.set_defaults(train_pass=1)

预期的行为是:

  1. 最多可以设置a和b之一。

  2. 如果a和b均未设置,则a应该默认为1,b应该没有。

  3. 如果设置了a或b,则另一个值应为None。

但是,即使我提供task.py --b 10,它仍然会将a的值设置为1。

我检查了以下答案:Set the default to false if another mutually exclusive argument is true,但它做了不同的事情。当设置为b时,它希望该值为默认值(即此处为1),而不是无。

感谢您的帮助。非常感谢你!

0 个答案:

没有答案