[Python-Dev] Proposal: defaultdict
Ian Bicking
ianb at colorstudy.com
Fri Feb 17 22:03:49 CET 2006
Guido van Rossum wrote:
> d = {}
> d.default_factory = set
> ...
> d[key].add(value)
Another option would be:
d = {}
d.default_factory = set
d.get_default(key).add(value)
Unlike .setdefault, this would use a factory associated with the
dictionary, and no default value would get passed in. Unlike the
proposal, this would not override __getitem__ (not overriding
__getitem__ is really the only difference with the proposal). It would
be clear reading the code that you were not implicitly asserting they
"key in d" was true.
"get_default" isn't the best name, but another name isn't jumping out at
me at the moment. Of course, it is not a Pythonic argument to say that
an existing method should be overridden, or functionality made nameless
simply because we can't think of a name (looking to anonymous functions
of course ;)
--
Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
More information about the Python-Dev
mailing list