可能重复:
像 Python 中的属性一样访问字典键?
有没有办法在python中实现这个
foo = {'test_1': 1,'test_2': 2}
print foo.test_1
>>> 1
也许如果我扩展 dict,但我不知道如何动态生成函数。
可能重复:
像 Python 中的属性一样访问字典键?
有没有办法在python中实现这个
foo = {'test_1': 1,'test_2': 2}
print foo.test_1
>>> 1
也许如果我扩展 dict,但我不知道如何动态生成函数。
怎么样:
class mydict(dict):
def __getattr__(self, k):
return self[k]
foo = mydict({'test_1': 1,'test_2': 2})
print foo.test_1
您可能还想覆盖__setattr__()
.
您可以使用namedtuple实现类似的行为。但唯一的缺点是,它不可变
>>> bar = namedtuple('test',foo.keys())(*foo.values())
>>> print bar.test_1
1
>>> print bar.test_2
2