输出中的__dict__类** kwargs,* args

时间:2013-11-11 19:34:57

标签: python dictionary

我正在尝试使用

中的__dict__创建一个dict
attrdict(name = ("American","bbbb"),weight=(2,2.5))

我试着用

开头
class attrdict(dict):
    def __init__(self, *args, **kwargs):
        dict.__init__(self, *args, **kwargs)
        self.__dict__ = self

这会返回{'name': ('American', 'bbbb'), 'weight': (2, 2.5)},但我需要的方式是我可以称之为“美国人”,它会返回2.

我被困住了。有人可以指出我正确的方向。

1 个答案:

答案 0 :(得分:2)

如果您想要这样的结果,则传递压缩值:

class attrdict(dict):
    def __init__(self, *args, **kwargs):
        dict.__init__(self, dict(*args))
        self.__dict__ = self

演示:

>>> d = attrdict(zip(("American","bbbb"),(2,2.5)))
>>> d['American']
2
>>> d['bbbb']
2.5