[Python-Dev] defaultdict proposal round three (original) (raw)

Alex Martelli aleaxit at gmail.com
Wed Feb 22 16:47:33 CET 2006


On Feb 22, 2006, at 7:21 AM, Raymond Hettinger wrote: ...

I'm somewhat happy with the patch as it stands now. The only part that needs serious rethinking is putting onmissing() in regular dicts. See my other email on that subject.

What if we named it _on_missing? Hook methods intended only to be
overridden in subclasses are sometimes spelled that way, and it
removes the need to teach about it to beginners -- it looks private
so we don't explain it at that point.

My favorite example is Queue.Queue: I teach it (and in fact
evangelize for it as the one sane way to do threading;-) in "Python
101", without ever mentioning _get, _put etc -- THOSE I teach in
"Patterns with Python" as the very bext example of the Gof4's classic
"Template Method" design pattern. If dict had _on_missing I'd have
another wonderful example to teach from! (I believe the Library
Reference avoids teaching about _get, _put etc, too, though I haven't
checked it for a while).

TM is my favorite DP, so I'm biased in favor of Guido's design, and I
think that by giving the hook method (not meant to be called, only
overridden) a "private name" we're meeting enough of your and /F's
concerns to let _on_missing remain. Its existence does simplify the
implementation of defaultdict (and some other dict subclasses), and
"if the implementation is easy to explain, it may be a good idea",
after all;-)

Alex



More information about the Python-Dev mailing list