defaultdict of arbitrary depth
Paul McGuire
ptmcg at austin.rr.com
Fri Aug 17 00:27:11 EDT 2007
On Aug 16, 11:19 pm, Carsten Haese <cars... at uniqsys.com> wrote:
> On Thu, 2007-08-16 at 20:25 -0700, Paul McGuire wrote:
> > [...]
> > I've hacked out this recursivedefaultdict which is a
> > defaultdict(defaultdict(defaultdict(...))), arbitrarily deep depending
> > on the keys provided in the reference.
>
> > Please comment.
> > [...]
>
> > class recursivedefaultdict(object):
> > def __init__(self):
> > self.__dd = defaultdict(recursivedefaultdict)
> > def __getattr__(self,attr):
> > return self.__dd.__getattribute__(attr)
> > def __getitem__(self,*args):
> > return self.__dd.__getitem__(*args)
> > def __setitem__(self,*args):
> > return self.__dd.__setitem__(*args)
>
> This is shorter:
>
> from collections import defaultdict
>
> class recursivedefaultdict(defaultdict):
> def __init__(self):
> self.default_factory = type(self)
>
> --
> Carsten Haesehttp://informixdb.sourceforge.net- Hide quoted text -
>
> - Show quoted text -
Of course, very short and sweet! Any special reason you wrote:
self.default_factory = type(self)
instead of:
self.default_factory = recursivedefaultdict
?
-- Paul
More information about the Python-list
mailing list