如何在Python 2.x中合并两个argparse命名空间?

时间:2019-05-14 18:32:58

标签: python-2.x

我想在Python 2.x中合并2个argparse.Namespace对象。

在python 3.x中,我可以执行以下操作:

from argparse import Namespace

# The 2 initial objects
options_foo = Namespace(foo="foo")
options_bar = Namespace(bar="bar")

# the merged object
options_baz = Namespace(**vars(options_foo), **vars(options_bar))

并获得:

print(options_baz)
# Namespace(foo="foo", bar="bar")

但是在python 2.x中我不能。我收到以下错误。

SyntaxError: invalid syntax

有没有简单的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

我知道您的问题包含有效的 python 3 代码,但对于我们在任何 python(例如 3)中寻找答案并且只想要一个答案并且有在这里跳过问题详细信息的坏习惯是python 3的解决方案(公然从OP复制):

#%%

from argparse import Namespace

# The 2 initial objects
options_foo = Namespace(foo="foo")
options_bar = Namespace(bar="bar")

# The vars() function returns the __dict__ attribute to values of the given object e.g {field:value}.
print(vars(options_foo))

# the merged object
options_baz = Namespace(**vars(options_foo), **vars(options_bar))

print(options_baz)

输出:

{'foo': 'foo'}
Namespace(bar='bar', foo='foo')