gpt4 book ai didi

python - 我可以将对象传递给 argparse.add_argument 吗?

转载 作者:行者123 更新时间:2023-11-30 22:37:24 24 4
gpt4 key购买 nike

不要将一堆文字分散在对 add_argument 的调用中,如下所示:

parser.add_argument('--foo',
required=False,
metavar='bar',
type=str,
help='help message',
default='default')

parser.add_argument('--foo2',
required=False,
metavar='bar2',
type=str,
help='help message',
default='default')

我希望我可以先创建一个容器,然后在循环中添加所有参数。
像这样的事情:

for arg in argument_container:
parser.add_argument(arg)

我不太熟悉Python如何接受这些参数,无法理解它们是否可以像我想要的那样被抽象成某种对象文字。

有没有办法先将所有参数抽象到一个容器中,然后通过如上所示的循环一次性添加所有参数?

最佳答案

要在同一列表中同时获取 *args**kwargs,您可以将它们添加为元组的一部分:

import argparse

parser = argparse.ArgumentParser(description='Process some strings.')

args = [(('--foo', '-f'), {'help':'Foo help', 'required':False, 'type':str, 'default':'foo'}),
(('--bar', '-b'), {'help':'Bar help', 'required':False, 'type':str, 'default':'bar'})]

for arg in args:
parser.add_argument(*arg[0], **arg[1])

parsed_args = parser.parse_args()

因此,元组的第一部分是另一个元组,包含参数的不同名称,然后(外部)元组的第二部分是带有关键字参数的字典。

关于python - 我可以将对象传递给 argparse.add_argument 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43899992/

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