
New submission from Terry J. Reedy:
Currently, the only index entry for __missing__ is "__missing__() (collections.defaultdict method)". This entry should probably not exist -- see #9536, which inspired this issue. The method is not mentioned in the special-methods doc, and the explanation in the dict doc is not indexed. Two suggestions:
https://docs.python.org/3/reference/datamodel.html#emulating-container-types
After __getitem__ entry, add automatically indexed entry, something like
object.__missing__(self, key): When present in a dict subclass, called by dict.__getitem__ for missing keys.
https://docs.python.org/3/library/stdtypes.html#mapping-types-dict
Before the d[key] paragraph starting "If a subclass of dict defines a method __missing__()" add explicit __missing__ index directive. The last sentence of the paragraph
"See collections.Counter for a complete implementation including other methods helpful for accumulating and managing tallies."
is confusing because the linked entry makes no mention of __missing__ (as it should not). Change sentence to something like
"There are two stdlib dict subclasses that use (different) __missing__ methods as part of their implementation: collections.Counter and collections.defaultdict."
I will work on a patch and try to get the markup correct.
---------- assignee: docs@python components: Documentation messages: 232279 nosy: docs@python, terry.reedy priority: normal severity: normal stage: needs patch status: open title: Improve the doc and indexing of adict.__missing__. type: behavior versions: Python 2.7, Python 3.4, Python 3.5
_______________________________________ Python tracker report@bugs.python.org http://bugs.python.org/issue23006 _______________________________________