美文网首页
python dict 增加属性访问功能

python dict 增加属性访问功能

作者: cecil_007 | 来源:发表于2017-04-27 16:58 被阅读74次

实现类似数据库查询结果既可以索引访问,也可以属性访问

如 obj["a"] 和 obj.a

示例如下:

class ObjDic(object):
    '''
    字典增加按照属性访问功能
    仅支持按照 key中的属性访问 value
    如果字典中 value 为tuple, list, set, frozenset类型,不能递归按照属性访问
    如 d={"a":{"b":"c"}} 支持 d.a,不支持 d.a.b
    '''
    def __init__(self, d):
        for i,j in d.items():
            setattr(self, i, j)
            
    def __getitem__(self, index):
        try:
            return getattr(self, index)
        except:
            return None

测试

a = ObjDic({"a":"b"})
print a.a
print a["a"]

相关文章

网友评论

      本文标题:python dict 增加属性访问功能

      本文链接:https://www.haomeiwen.com/subject/ozcnzttx.html