[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

AltStyle によって変換されたページ (->オリジナル) /