[Python-Dev] defaultdict and on_missing()
Guido van Rossum
guido at python.org
Wed Feb 22 18:44:33 CET 2006
On 2/22/06, Raymond Hettinger <python at rcn.com> wrote:
> [Guido van Rossum"]
> > If we removed on_missing() from dict, we'd have to override
> > __getitem__ in defaultdict (regardless of whether we give
> >defaultdict an on_missing() hook or in-line it).
> You have another option. Keep your current modifications to
> dict.__getitem__ but do not include dict.on_missing(). Let it only
> be called in a subclass IF it is defined; otherwise, raise KeyError.
OK. I don't have time right now for another round of patches -- if you
do, please go ahead. The dict docs in my latest patch must be updated
somewhat (since they document on_missing()).
> That keeps me happy since the basic dict API won't show on_missing(),
> but it still allows a user to attach an on_missing method to a dict subclass
> or if needed. I think all your test cases would still pass without
Except the ones that explicitly test for dict.on_missing()'s presence
and behavior. :-)
> This is approach is not much different than for other magic methods which
> kick-in if defined or revert to a default behavior if not.
Right. Plenty of precedent there.
> My core concern is to keep the dict API clean as a whistle.
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev