Python:是否可以在不调用函数的情况下解压缩参数? 当前拥有所需

问题描述

我有dict想要转换为几个不同的对象。例如:

当前拥有

kwargs = {'this': 7,'that': 'butterfly'}

我想转换它,也许使用类似于函数参数解压缩的方式,但实际上没有调用函数,所以我最终得到的像是这样:

所需

**kwargs
print(this) # Will print out `7`
print(that) # Will print out `'butterfly'`

我知道我不能像显示的那样裸露双星[**]。但是我可以做些类似的事情吗?


编辑:更多细节

由于人们在询问细节并警告我要做的事很危险,所以我会为我的需要提供更多背景信息。

我要使用关键字参数设置的类中有一个属性。类似于shown here,但将kwargs而不是args拆包。

作为一个有效的玩具示例,它看起来像这样:


class A(object):
    def __init__(self):
        self._idx = None
    @property
    def idx(self):
        return self._idx
    @idx.setter
    def idx(self,kwargs):
        print(kwargs)
        self._idx = {}
        for kw,val in kwargs.items():
            self._idx[kw] = val

这有效。但是现在我正在对该功能进行单元测试,并且在单元测试中,我希望能够提供特定的键值对作为普通对象,以便我可以有效地使用hypothesispytest@mark.parametrize

为此,看来我将需要如上所述的“裸包”。

由于这些实际上都是方法中的局部变量,因此我觉得@ g.d.d.c所关心的问题可能并不重要。听起来好像他担心我是否要创建新的全局变量而不知道它们是什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)