我不认为有使用的本地方法
argparse,但是幸运的是,
argparse提供了报告自定义错误的方法。最优雅的方法可能是定义一个自定义操作,以检查重复项(如果存在则退出)。
class UniqueStore(argparse.Action): def __call__(self, parser, namespace, values, option_string): if getattr(namespace, self.dest, self.default) is not self.default: parser.error(option_string + " appears several times.") setattr(namespace, self.dest, values)parser = argparse.ArgumentParser()parser.add_argument('-f', '--foo', action=UniqueStore)args = parser.parse_args()(阅读 有关皮肤动作的文档)
另一种方法是使用append操作并计算列表的len。
parser = argparse.ArgumentParser()parser.add_argument('-f', '--foo', action='append')args = parser.parse_args()if len(args.foo) > 1: parser.error("--foo appears several times.")


