2

我正在尝试制作一个可以使用__dict__out制作 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。

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

4

1 回答 1

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
于 2013-11-11T19:39:41.810 回答