我正在尝试使用
中的__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.
我被困住了。有人可以指出我正确的方向。
答案 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