實(shí)現(xiàn)類似數(shù)據(jù)庫(kù)查詢結(jié)果既可以索引訪問(wèn),也可以屬性訪問(wèn)
如 obj["a"] 和 obj.a
示例如下:
class ObjDic(object):
'''
字典增加按照屬性訪問(wèn)功能
僅支持按照 key中的屬性訪問(wèn) value
如果字典中 value 為tuple, list, set, frozenset類型,不能遞歸按照屬性訪問(wèn)
如 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
測(cè)試
a = ObjDic({"a":"b"})
print a.a
print a["a"]