summaryrefslogtreecommitdiff
path: root/Doc
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-05-30 13:41:06 -0700
committerGitHub <noreply@github.com>2019-05-30 13:41:06 -0700
commite8661c1dabc206bf7fe6e302e38fa426aa734dd0 (patch)
tree58eba84ce1cf0ee6298f16ca1a8eabef4d0de5ef /Doc
parentf1487b323549e2360460383b4304f6592fb38e27 (diff)
downloadcpython-git-e8661c1dabc206bf7fe6e302e38fa426aa734dd0.tar.gz
bpo-30969: Fix docs about the comparison in absence of __contains__ (GH-2761)
(cherry picked from commit 2f5b9dcc0a89cbde1499c76df81c36bfd5ef9aa8) Co-authored-by: Antti Haapala <antti@haapala.name>
Diffstat (limited to 'Doc')
-rw-r--r--Doc/reference/expressions.rst11
1 files changed, 6 insertions, 5 deletions
diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst
index 3fb27c8a80..990600ec18 100644
--- a/Doc/reference/expressions.rst
+++ b/Doc/reference/expressions.rst
@@ -1568,14 +1568,15 @@ y`` returns ``True`` if ``y.__contains__(x)`` returns a true value, and
``False`` otherwise.
For user-defined classes which do not define :meth:`__contains__` but do define
-:meth:`__iter__`, ``x in y`` is ``True`` if some value ``z`` with ``x == z`` is
-produced while iterating over ``y``. If an exception is raised during the
-iteration, it is as if :keyword:`in` raised that exception.
+:meth:`__iter__`, ``x in y`` is ``True`` if some value ``z``, for which the
+expression ``x is z or x == z`` is true, is produced while iterating over ``y``.
+If an exception is raised during the iteration, it is as if :keyword:`in` raised
+that exception.
Lastly, the old-style iteration protocol is tried: if a class defines
:meth:`__getitem__`, ``x in y`` is ``True`` if and only if there is a non-negative
-integer index *i* such that ``x == y[i]``, and all lower integer indices do not
-raise :exc:`IndexError` exception. (If any other exception is raised, it is as
+integer index *i* such that ``x is y[i] or x == y[i]``, and no lower integer index
+raises the :exc:`IndexError` exception. (If any other exception is raised, it is as
if :keyword:`in` raised that exception).
.. index::