我想编写一个带有可选--foo
和--bar
参数的脚本。指定它们都是合法的。指定两者也是合法的。但是,仅指定--foo
或仅--bar
会引发命令行解析器错误。
在我调用parser.parse_args()
之后,我可以编写代码来检查这种情况并引发相应的错误,但是有没有一种方法已经内置到argparse
来执行此操作,这与{{3}相反}}?
答案 0 :(得分:2)
没有那种分组或内置测试,只有这一次xor
测试。
但解析后实现测试并不困难 - 只要你的参数有合理的默认值(例如默认的默认值None
)。
另一种可能性是使用foobar
定义一个参数nargs=2
- 它需要2个值。
另一个是提供一个或两个良好的默认值,这样你就不会真正关心用户是否同时提供这两个值。