default behavior

John Posner jjposner at optimum.net
Sat Jul 31 13:31:35 EDT 2010


On 7/31/2010 11:08 AM, Christian Heimes wrote:

> ... All you have to do is subclass dict and implement a
> __missing__ method. See
> http://docs.python.org/library/stdtypes.html?highlight=__missing__#mapping-types-dict
>

Caveat -- there's another description of defaultdict here:

  http://docs.python.org/library/collections.html#collections.defaultdict

... and it's bogus. This other description claims that __missing__ is a 
method of defaultdict, not of dict.

This might cause considerable confusion, leading the reader to suspect 
that __missing__ and default_factory fight it out for the right to 
supply a default value. (__missing__ would win -- I tried it.)

The truth, as Christian says above and as Raymond Hettinger recently 
pointed out [1], is that __missing__ is used to *define* defaultdict as 
a subclass of dict -- it's not used *by* defaultdict.

-John

[1] http://mail.python.org/pipermail/python-list/2010-July/1248896.html



More information about the Python-list mailing list