我从配置文件创建一个
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
和相同的名称替换参数。
这要怎么做?
代表参数的对象由
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)