dictionary properties in Python
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Accessing dict keys like an attribute in Python?
有没有办法用python实现这个
1 2 3 | foo = {'test_1': 1,'test_2': 2} print foo.test_1 >>> 1 |
也许我可以扩展dict,但我不知道如何动态生成函数。
怎么样:
1 2 3 4 5 6 | class mydict(dict): def __getattr__(self, k): return self[k] foo = mydict({'test_1': 1,'test_2': 2}) print foo.test_1 |
您可能还需要覆盖
您可以使用NamedDuple实现类似的行为。但唯一的缺点是,它是不变的
1 2 3 4 5 | >>> bar = namedtuple('test',foo.keys())(*foo.values()) >>> print bar.test_1 1 >>> print bar.test_2 2 |