所以我在使用argparse,我试图创建一些我似乎在任何地方都找不到解决方案的东西。
我在试着做[A | [B C]]
。所以要么我有A
要么(B and C)
。
编辑 所以一些代码的例子是
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group(required=False)
group.add_argument("-a")
more = group.add_mutually_exclusive_group()
more.add_argument("-b")
more.add_argument("c")
但这最终给了我[A | [B | C]]
互斥组机制仅适用于简单(平面)互斥或组。没有任何机制可以将一个组嵌套到另一个组中,或者应用其他逻辑(
and
,any
等)。解析后需要自己做测试。只要默认值是合理的(例如,默认值
None
)就不难。子类提供了另一种分组逻辑,这可能对您有用。
如果您需要更详细地研究它,这在其他SO问题和Python bug/问题中已经提出。
一、二、二、三
argument groups
尽管有名称,但不能与互斥组一起使用。它们的目的完全不同(帮助行的分组)。你可以将一个相互排斥的组嵌套在另一个组中,但最终的效果是将所有内容放在一个组中。argparse: some mutually exclusive arguments in required group
一、二、二、三、三
有结果的运行
以下是执行日志:
互斥组适用于用户必须从给定集合中选择至少一个选项,或者
required=True
只有一个选项的情况。相关问题 更多 >
编程相关推荐