【发布时间】:2021-08-25 23:47:27
【问题描述】:
我有两个参数,要么都需要,要么都不需要。我想到了两种解决方案:一个带有 nargs=2 的可选参数,或者两个相互依赖的可选参数。我找到了 nargs=2 的答案,但帮助输出对用户来说似乎很混乱且不透明。我想研究制作两个相互依赖的可选参数。
如果我提供环境,我也需要提供服务,反之亦然。如果我都不提供,那也没关系。
普通的可选参数被添加到这种类型的帮助输出中:
usage: script.py [-h] [-e ENVIRONMENT] [-s SERVICE] [-u] [-d]
我想要这种类型的帮助输出(以及基本要求):
usage: script.py [-h] [-e ENVIRONMENT -s SERVICE] [-u] [-d]
是否有一个标志或简单的方法可以做到这一点,所以它会清楚地显示在帮助中?编写额外的检查来强制执行此操作是微不足道的,但让用户清楚地了解我的帮助似乎超出了我的能力范围。
与此同时,我向 argparse 添加了这样的帮助:parser.add_argument('-s', '--service', metavar='SERVICE', help='Service to use, if -e also used')
【问题讨论】:
-
不,没有任何方法可以生成所需的用法。
-
请注意,您可以覆盖使用参数以显示您需要的内容。
标签: python argparse optional-parameters