我想打一个字典INT,您可以访问这样的:覆盖{}在python
>>> my_dict["property'] = 3
>>> my_dict.property
3
所以我做了这个一个:
class DictAsMember(dict):
def __getattr__(self, name):
return self[name]
这工作得很好,但如果你嵌套类型的字典它不工作,如:
my_dict = DictAsMember()
my_dict["property"] = {'sub': 1}
我可以访问my_dict.property但在逻辑上我不能这样做,因为my_dict.property.sub道具erty是默认字典,所以我想要做的是覆盖默认字典,所以你可以使用{}。
这可能吗?
我发现的唯一问题就是如果你有一个数组与字典,例如: my_dict [“properties”] = [{'name':1},{'name':2}] 哟可以修改解决方法,以便考虑数组,这就是为什么我正在寻找一种方法来覆盖默认词典 – 2012-01-03 09:46:42
@Félix事情会变得更复杂一些,但列表中的字典仍然可以被包装。我更新了我的答案,以显示使用列表中的字典的示例。 – jcollado 2012-01-03 10:06:23