我可以使两个参数组互斥吗?

时间:2019-05-01 15:19:49

标签: python-3.x argparse

我有2个参数组-a -b-c -d -e。我想确保它们是互斥的,例如:不允许使用-a -c-b -e,但是允许使用-a -b-c -e

我尝试了类似的方法,但是它不起作用:

mutex_group_of_groups = parser.add_mutually_exclusive_group(
    required=True
)
mutex_group_of_groups.add_argument(
    '--top1',
    type=str,
)
mutex_group_of_groups.add_argument(
    '--top2',
    type=str,
)
g1_in_mutex_group = mutex_group_of_groups.add_argument_group('g1')
g1_in_mutex_group.add_argument(
    '-a', '--g1a',
    type=str,
)
g1_in_mutex_group.add_argument(
    '-b',
    type=str,
    nargs="?",
)
g2_in_mutex_group = mutex_group_of_groups.add_argument_group('g2')
g2_in_mutex_group.add_argument(
    '-c',
    type=str,
)
g2_in_mutex_group.add_argument(
    '-d',
    type=str,
)
g2_in_mutex_group.add_argument(
    '-e',
    type=str,
)

这里只有top1和top2是互斥的。

我知道我可以使用子解析器将这两个组变成2个子命令。但是我想要一个不创建子命令的简单解决方案。

0 个答案:

没有答案