summaryrefslogtreecommitdiff
path: root/Doc
diff options
context:
space:
mode:
authorEthan Furman <ethan@stoneleaf.us>2014-11-26 21:17:53 -0800
committerEthan Furman <ethan@stoneleaf.us>2014-11-26 21:17:53 -0800
commit9b55089999bfb12b0c8f6e9ccd91f712831f31dc (patch)
treef5c0e709a3e438c2af35883f9cf75649f1595142 /Doc
parent0a59d5563ecb632a61d8e45761824c76bfacbeea (diff)
parentb004943e9bca2f938b313172367a271f69aa29a5 (diff)
downloadcpython-git-9b55089999bfb12b0c8f6e9ccd91f712831f31dc.tar.gz
Issue22780: reword NotImplemented docs to emphasise should
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/constants.rst20
-rw-r--r--Doc/library/numbers.rst2
-rw-r--r--Doc/reference/datamodel.rst7
3 files changed, 25 insertions, 4 deletions
diff --git a/Doc/library/constants.rst b/Doc/library/constants.rst
index a625b43442..d5a0f09173 100644
--- a/Doc/library/constants.rst
+++ b/Doc/library/constants.rst
@@ -26,9 +26,23 @@ A small number of constants live in the built-in namespace. They are:
.. data:: NotImplemented
- Special value which should be returned by the special methods
- (:meth:`__eq__`, :meth:`__lt__`, :meth:`__add__`, etc.) to indicate
- that the operation is not implemented with respect to the other type.
+ Special value which should be returned by the binary special methods
+ (e.g. :meth:`__eq__`, :meth:`__lt__`, :meth:`__add__`, :meth:`__rsub__`,
+ etc.) to indicate that the operation is not implemented with respect to
+ the other type; may be returned by the in-place binary special methods
+ (e.g. :meth:`__imul__`, :meth:`__iand__`, etc.) for the same purpose.
+ Its truth value is true.
+
+.. note::
+
+ When ``NotImplemented`` is returned, the interpreter will then try the
+ reflected operation on the other type, or some other fallback, depending
+ on the operator. If all attempted operations return ``NotImplemented``, the
+ interpreter will raise an appropriate exception.
+
+ See
+ :ref:`implementing-the-arithmetic-operations`
+ for more details.
.. data:: Ellipsis
diff --git a/Doc/library/numbers.rst b/Doc/library/numbers.rst
index fec04ed722..8ab07d0b93 100644
--- a/Doc/library/numbers.rst
+++ b/Doc/library/numbers.rst
@@ -110,6 +110,8 @@ those. You can add ``MyFoo`` between :class:`Complex` and
MyFoo.register(Real)
+.. _implementing-the-arithmetic-operations:
+
Implementing the arithmetic operations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst
index 928b1a825b..896416e00e 100644
--- a/Doc/reference/datamodel.rst
+++ b/Doc/reference/datamodel.rst
@@ -154,11 +154,16 @@ NotImplemented
This type has a single value. There is a single object with this value. This
object is accessed through the built-in name ``NotImplemented``. Numeric methods
- and rich comparison methods may return this value if they do not implement the
+ and rich comparison methods should return this value if they do not implement the
operation for the operands provided. (The interpreter will then try the
reflected operation, or some other fallback, depending on the operator.) Its
truth value is true.
+ See
+ :ref:`implementing-the-arithmetic-operations`
+ for more details.
+
+
Ellipsis
.. index:: object: Ellipsis