美文网首页
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