gpt4 book ai didi

python - Argparse 字典到命名空间

转载 作者:行者123 更新时间:2023-12-05 02:44:32 26 4
gpt4 key购买 nike

我在 python 代码中使用 argparse 作为参数解析器。将字典解析为 argparse 对象的最佳方法是什么?

例如,我的字典是:

{
"activation_dropout": 0.0,
"activation_fn": "gelu",
"attention_dropout": 0.0,
"beam": 1,
}

我期望的是一个 argparse.Namespace 对象,它具有 activation_dropoutactivation_fnattention_dropout光束

我希望 argparse 中有一个方法,它将输入作为字典并给出一个 argparse,并将命名空间作为这些变量。

最佳答案

只需使用** 解包:

In [57]: adict={'foo':1, 'bar':'astring', 'baz':[1,2,3]}
In [59]: argparse.Namespace(**adict)
Out[59]: Namespace(bar='astring', baz=[1, 2, 3], foo=1)
In [60]: args = argparse.Namespace(**adict)
In [61]: args
Out[61]: Namespace(bar='astring', baz=[1, 2, 3], foo=1)
In [62]: args.bar
Out[62]: 'astring'

它的文档:

In [63]: argparse.Namespace?
Init signature: argparse.Namespace(**kwargs)
Docstring:
Simple object for storing attributes.

Implements equality by attribute names and values, and provides a simple string representation.

它是一个简单的对象子类,将其 **kwargs 分配给它的属性。并提供了基本的展示方式。

vars 是反转它的标准 Python 方法:

In [65]: vars(args)
Out[65]: {'foo': 1, 'bar': 'astring', 'baz': [1, 2, 3]}

在内部,parser.parse_args 创建一个 argparse.Namespace() 并使用 setattr(args, dest, value) 赋值。

关于python - Argparse 字典到命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66417524/

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