[Python-Dev] defaultdict proposal round three

Greg Ewing greg.ewing at canterbury.ac.nz
Tue Feb 21 10:59:06 CET 2006


Bengt Richter wrote:

> you could write
> 
>     d = dict()**list

Or alternatively,

   ld = dict[list]

i.e. "a dict of lists". In the maximally twisted
form of this idea, the result wouldn't be a dict
but a new *type* of dict, which you would then
instantiate:

   d = ld(your_favourite_args_here)

This solves both the constructor-argument problem
(the new type can have the same constructor signature
as a regular dict with no conflict) and the
perceived-Liskov-nonsubstitutability problem (there's
no requirement that the new type have any particular
conceptual and/or actual inheritance relationship to
any other type). Plus being a really cool introduction
to the concepts of metaclasses, higher-order functions
and all that neat head-exploding stuff. :-)

Resolving-not-to-coin-any-more-multihyphenated-
hyperpolysyllabic-words-like-'perceived-Liskov-
nonsubstitutability'-this-week-ly,

Greg


More information about the Python-Dev mailing list