python dictプロパティアクセス機能の追加

678 ワード

類似データベース・クエリーの結果は、インデックス・アクセスもプロパティ・アクセスも可能です.
例えば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"]