Commit 2f5b9dcc authored by Antti Haapala's avatar Antti Haapala Committed by Cheryl Sabella

bpo-30969: Fix docs about the comparison in absence of __contains__ (GH-2761)

parent 1e36f75d
...@@ -1563,14 +1563,15 @@ y`` returns ``True`` if ``y.__contains__(x)`` returns a true value, and ...@@ -1563,14 +1563,15 @@ y`` returns ``True`` if ``y.__contains__(x)`` returns a true value, and
``False`` otherwise. ``False`` otherwise.
For user-defined classes which do not define :meth:`__contains__` but do define 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 :meth:`__iter__`, ``x in y`` is ``True`` if some value ``z``, for which the
produced while iterating over ``y``. If an exception is raised during the expression ``x is z or x == z`` is true, is produced while iterating over ``y``.
iteration, it is as if :keyword:`in` raised that exception. 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 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 :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 integer index *i* such that ``x is y[i] or x == y[i]``, and no lower integer index
raise :exc:`IndexError` exception. (If any other exception is raised, it is as raises the :exc:`IndexError` exception. (If any other exception is raised, it is as
if :keyword:`in` raised that exception). if :keyword:`in` raised that exception).
.. index:: .. index::
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment