gpt4 book ai didi

python - 使用 argparse 参数作为关键字参数

转载 作者:行者123 更新时间:2023-11-28 22:56:42 25 4
gpt4 key购买 nike

假设在使用 argparse 解析我的命令行后,我有一个 args 命名空间。现在,我想用它来创建一些像这样的对象:

foo = Foo(bar=args.bar)

不幸的是,我有一个限制,即如果设置了一个关键字参数,它不能是None。现在,我需要检查是否设置了 args.bar 并采取相应措施:

if args.bar:
foo = Foo(bar=args.bar)
else:
foo = Foo()

这很笨拙,无法扩展更多参数。我想要的是这样的:

foo = Foo(**args.__dict__)

但这仍然受到我最初问题的困扰,而且对于不是 __init__ 方法的关键字参数的键也不起作用。有什么好的方法可以实现这些东西吗?

最佳答案

你可以尝试这样的事情:

>>> defined_args = {k:v for k,v in args._get_kwargs() if v is not None}
>>> foo = Foo(**defined_args)

例如:

>>> import argparse
>>> args = argparse.Namespace(key1=None,key2='value')
>>> {k:v for k,v in args._get_kwargs() if v is not None}
{'key2': 'value'}

但是请注意,_get_kwargs() 不是公共(public) API 的一部分,因此在未来的发布/版本中可能会或可能不会提供。

关于python - 使用 argparse 参数作为关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15161269/

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