gpt4 book ai didi

Python argparse 多个元变量名称

转载 作者:行者123 更新时间:2023-12-01 08:22:34 25 4
gpt4 key购买 nike

我正在使用 argparse python中的库。有时,我使用一个名为 param 的参数。这需要 2 个参数:一个键和一个值。我使用的代码行如下:

parser.add_argument("-p", "--param", nargs=2, action="append", 
help="key and value for query",
type=str, metavar="key value"
)

这里的问题是当我调用帮助时,它显示如下:
optional arguments:
-h, --help show this help message and exit
-p key value key value, --param key value key value
key and value for query parameters

名称“键值”重复两次。我尝试使用列表和生成器,但我发现的唯一方法是创建一个包含不同值的小类,并在询问 __str__ 时生成它们像这样:
class Meta:
def __init__(self, iterable):
self.gene = itertools.cycle(iterable)

def __str__(self):
return self.gene.__next__()

我调用 add_argument像这样:
parser.add_argument("-p", "--param", nargs=2, action="append", 
help="key and value for query parameters",
type=str, metavar=Meta(["key", "value"])
)

它显示正确:
-p key value, --param key value
key and value for query parameters

但是我发现使用像 Meta 这样的临时类非常难看。 ,而且我觉得必须有另一种(更好的)方法来做到这一点。我做对了吗?

最佳答案

从滚动 doc深深地,我找到了我的答案

Different values of nargs may cause the metavar to be used multiple times. Providing a tuple to metavar specifies a different display for each of the arguments:



确实,这工作得很好:
parser.add_argument("-p", "--param", nargs=2, action="append", 
help="key and value for query parameters",
type=str, metavar=("key", "value")
)

关于Python argparse 多个元变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50965583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com