[Python-Dev] Proposal: defaultdict (original) (raw)

Ian Bicking ianb at colorstudy.com
Fri Feb 17 22:03:49 CET 2006


Guido van Rossum wrote:

d = {} d.defaultfactory = 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