mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
bpo-30969: Fix docs about the comparison in absence of __contains__ (GH-2761)
This commit is contained in:
parent
1e36f75d63
commit
2f5b9dcc0a
1 changed files with 6 additions and 5 deletions
|
@ -1563,14 +1563,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::
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue