【发布时间】:2020-12-30 20:11:59
【问题描述】:
我使用 Argparse 已经有一段时间了,这是我遇到的问题的 StackOverflow Answer。
这个答案并没有完全解决我的问题。
这是从答案中借用的已编辑代码。 (我在添加换行符之前添加了注释)
import argparse
parent_parser = argparse.ArgumentParser(description="The parent parser")
parent_parser.add_argument("-p", type=int, required=True,
help="set db parameter")
#adding a new parent argument
parent_parser.add_argument("-q", type=int, required=True,
help="help with -q")
subparsers = parent_parser.add_subparsers(title="actions")
parser_create = subparsers.add_parser("create", parents=[parent_parser],
add_help=False,
description="The create parser",
help="create the orbix environment")
parser_create.add_argument("--name", help="name of the environment")
parser_update = subparsers.add_parser("update", parents=[parent_parser],
add_help=False,
description="The update parser",
help="update the orbix environment")
编辑后的代码代表这个
- -p & -q 作为父参数
问题是,我不想在我的子解析器中使用新的父参数“-q”。
我只想在任何子解析器中使用参数“-p”。
这听起来有点不同,但由于我要处理这么多子解析器,我真的想要我的子解析器的最佳选择。
我应该怎么做?
【问题讨论】:
-
链接的 SO 中接受的答案是旧的且有问题的。较新的答案更好。
标签: python python-3.x arguments argparse subparsers