magical expanding hash
James Stroud
jstroud at ucla.edu
Tue Jan 17 01:32:31 EST 2006
braver wrote:
> I need a magical expanding hash with the following properties:
>
> * it creates all intermediate keys
>
> meh['foo']['bar] = 1
>
> -- works even if meh['foo'] didn't exist before
>
> * allows pushing new elements to leaves which are arrays
>
> meh['foo']['list] << elem1
> meh['foo']['list] << elem2
>
> * allows incrementing numeric leaves
>
> meh['foo']['count'] += 7
>
> * serializable
>
> I have such a class in ruby. Can python do that?
>
Is this too magical?
class meh(dict):
def __getitem__(self, item):
if self.has_key(item):
return dict.__getitem__(self, item)
else:
anitem = meh()
dict.__setitem__(self, item, anitem)
return anitem
m = meh()
m['bob']['carol']['ted'] = 2
print m['bob']['carol']['ted']
More information about the Python-list
mailing list