【发布时间】:2015-04-05 23:39:42
【问题描述】:
如果我填充了一个互斥的 argparse 组,然后 parser.add_argument(对于其他项目),则该用法将互斥组中的参数显示为互斥:
import argparse
parser1 = argparse.ArgumentParser()
group1 = parser1.add_mutually_exclusive_group()
group1.add_argument('--start')
group1.add_argument('--stop')
group1.add_argument('--restart')
parser1.add_argument('--os')
parser1.print_usage()
输出:
usage: arg_usage.py [-h] [--start START | --stop STOP | --restart RESTART] [--os OS]
但是,如果我在组中间向解析器添加一个非互斥参数,则使用输出不再反映某些参数互斥的事实:
import argparse
parser2 = argparse.ArgumentParser()
group2 = parser2.add_mutually_exclusive_group()
group2.add_argument('--start')
group2.add_argument('--stop')
parser2.add_argument('--os')
group2.add_argument('--restart')
parser2.print_usage()
输出:
usage: arg_usage.py [-h] [--start START] [--stop STOP] [--os OS]
[--restart RESTART]
有没有什么方法可以在不手动提供使用字符串或重新排序调用的情况下解决这个问题?
附加说明 - 我发现在将混合类型添加到互斥组(位置和可选)时会出现同样的问题(用法不表示互斥选项)。
附加?:这些错误是否应该提交给http://bugs.python.org/?
【问题讨论】: