class DictHead(dict): def __getitem__(self, key): if not self.has_key(key): ne = DictHead() self[key] = ne return ne else: return dict.__getitem__(self, key)