[3.6] bpo-15718: Document the upper bound constrain on the __len__ return value. (GH-1256) (#1259)

(cherry picked from commit 85157cd)
This commit is contained in:
Serhiy Storchaka 2017-04-23 08:50:14 +03:00 committed by GitHub
parent 9d022f169e
commit f2ed2858ee

View file

@ -2011,6 +2011,14 @@ through the container; for mappings, :meth:`__iter__` should be the same as
:meth:`__bool__` method and whose :meth:`__len__` method returns zero is :meth:`__bool__` method and whose :meth:`__len__` method returns zero is
considered to be false in a Boolean context. considered to be false in a Boolean context.
.. impl-detail::
In CPython, the length is required to be at most :attr:`sys.maxsize`.
If the length is larger than :attr:`!sys.maxsize` some features (such as
:func:`len`) may raise :exc:`OverflowError`. To prevent raising
:exc:`!OverflowError` by truth value testing, an object must define a
:meth:`__bool__` method.
.. method:: object.__length_hint__(self) .. method:: object.__length_hint__(self)
@ -2021,6 +2029,7 @@ through the container; for mappings, :meth:`__iter__` should be the same as
.. versionadded:: 3.4 .. versionadded:: 3.4
.. note:: .. note::
Slicing is done exclusively with the following three methods. A call like :: Slicing is done exclusively with the following three methods. A call like ::