替换 ArgumentParser 中的参数

问题描述 投票:0回答:1

我从配置文件创建一个

argparse.ArgumentParser
实例,添加条目名称和值的参数。

稍后在我的代码中我想专门设置一些参数,假设

--hidden_size
就是其中之一。

当我跑步时

parser.add_argument('--hidden_size', type=int, metavar='N', help='Hidden size')

我明白了

argparse.ArgumentError: argument --hidden_size: conflicting option string: --hidden_size

替换条目最简单的方法是什么? 理想情况下,它应该看起来像这样:

arg = parser['--hidden_size']
parser.add_argument('--hidden_size', type=int, metavar='N', default=arg.default, help='Hidden size')

但是,我既不能通过给解析器加下标来访问参数,也不能用方法

add_argument
和相同的名称替换参数。 这要怎么做?

python argparse
1个回答
0
投票

代表参数的对象由

add_argument
返回;您可以随时设置其
default
属性,必要时
parse_args
将使用当前值。

>>> import argparse
>>> p = argparse.ArgumentParser()
>>> x = p.add_argument('--foo', type=int)
>>> p.parse_args()
Namespace(foo=None)
>>> x.default = 9
>>> p.parse_args()
Namespace(foo=9)
© www.soinside.com 2019 - 2024. All rights reserved.