summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2014-12-10 23:39:45 (GMT)
committerTerry Jan Reedy <tjreedy@udel.edu>2014-12-10 23:39:45 (GMT)
commite6b2b78a7d2715e5b645825924c575ceff3d4205 (patch)
tree98ff251874393ff38cea4ba0123fd2cbbce091a4
parent927131e050950e7345b2f3e19e8a57c2a328385b (diff)
parentb67f6e27e11264876e185cacd8ebabbf41c27fb0 (diff)
downloadcpython-e6b2b78a7d2715e5b645825924c575ceff3d4205.zip
cpython-e6b2b78a7d2715e5b645825924c575ceff3d4205.tar.gz
cpython-e6b2b78a7d2715e5b645825924c575ceff3d4205.tar.bz2
Merge 3.4
-rw-r--r--Doc/library/stdtypes.rst13
-rw-r--r--Doc/reference/datamodel.rst6
-rw-r--r--Misc/NEWS4
3 files changed, 18 insertions, 5 deletions
diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst
index 57fd0b1..ff06e85 100644
--- a/Doc/library/stdtypes.rst
+++ b/Doc/library/stdtypes.rst
@@ -3761,11 +3761,13 @@ pairs within braces, for example: ``{'jack': 4098, 'sjoerd': 4127}`` or ``{4098:
Return the item of *d* with key *key*. Raises a :exc:`KeyError` if *key* is
not in the map.
- If a subclass of dict defines a method :meth:`__missing__`, if the key *key*
+ .. index:: __missing__()
+
+ If a subclass of dict defines a method :meth:`__missing__` and *key*
is not present, the ``d[key]`` operation calls that method with the key *key*
as argument. The ``d[key]`` operation then returns or raises whatever is
- returned or raised by the ``__missing__(key)`` call if the key is not
- present. No other operations or methods invoke :meth:`__missing__`. If
+ returned or raised by the ``__missing__(key)`` call.
+ No other operations or methods invoke :meth:`__missing__`. If
:meth:`__missing__` is not defined, :exc:`KeyError` is raised.
:meth:`__missing__` must be a method; it cannot be an instance variable::
@@ -3779,8 +3781,9 @@ pairs within braces, for example: ``{'jack': 4098, 'sjoerd': 4127}`` or ``{4098:
>>> c['red']
1
- See :class:`collections.Counter` for a complete implementation including
- other methods helpful for accumulating and managing tallies.
+ The example above shows part of the implementation of
+ :class:`collections.Counter`. A different ``__missing__`` method is used
+ by :class:`collections.defaultdict`.
.. describe:: d[key] = value
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index 3f3c32b..7a6ed0a 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -1904,6 +1904,12 @@ through the container; for mappings, :meth:`__iter__` should be the same as
indexes to allow proper detection of the end of the sequence.
+.. method:: object.__missing__(self, key)
+
+ Called by :class:`dict`\ .\ :meth:`__getitem__` to implement ``self[key]`` for dict subclasses
+ when key is not in the dictionary.
+
+
.. method:: object.__setitem__(self, key, value)
Called to implement assignment to ``self[key]``. Same note as for
diff --git a/Misc/NEWS b/Misc/NEWS
index 36689c0..fb80c0b 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -5676,6 +5676,10 @@ C-API
Documentation
-------------
+- Issue #23006: Improve the documentation and indexing of dict.__missing__.
+ Add an entry in the language datamodel special methods section.
+ Revise and index its discussion in the stdtypes mapping/dict section.
+
- Issue #17701: Improving strftime documentation.
- Issue #18440: Clarify that `hash()` can truncate the value returned from an