Skip to content
Browse files

bpo-26701: Add documentation for __trunc__ (GH-6022)

`int` fails back to `__trunc__` is `__int__` isn't defined, so cover
that in the docs.
  • Loading branch information...
appeltel authored and ncoghlan committed Mar 10, 2018
1 parent 10485eb commit 308eab979d153f1ab934383dc08bc4546ced8b6c
Showing with 15 additions and 3 deletions.
  1. +5 −2 Doc/library/functions.rst
  2. +1 −1 Doc/library/math.rst
  3. +9 −0 Doc/reference/datamodel.rst
@@ -731,8 +731,11 @@ are always available. They are listed here in alphabetical order.

Return an integer object constructed from a number or string *x*, or return
``0`` if no arguments are given. If *x* is a number, return
:meth:`x.__int__() <object.__int__>`. For floating point numbers, this
truncates towards zero.
:meth:`x.__int__() <object.__int__>`. If *x* defines
:meth:`x.__trunc__() <object.__trunc__>` but not
:meth:`x.__int__() <object.__int__>`, then return
if :meth:`x.__trunc__() <object.__trunc__>`. For floating point numbers,
this truncates towards zero.

If *x* is not a number or if *base* is given, then *x* must be a string,
:class:`bytes`, or :class:`bytearray` instance representing an :ref:`integer
@@ -203,7 +203,7 @@ Number-theoretic and representation functions

Return the :class:`~numbers.Real` value *x* truncated to an
:class:`~numbers.Integral` (usually an integer). Delegates to
:meth:`x.__trunc__() <object.__trunc__>`.

Note that :func:`frexp` and :func:`modf` have a different call/return pattern
@@ -2377,6 +2377,15 @@ left undefined.
of the appropriate type.

.. method:: object.__trunc__(self)

Called to implement :meth:`math.trunc`. Should return the value of the
object truncated to a :class:`numbers.Integral` (typically an
:class:`int`). If a class defines :meth:`__trunc__` but not
:meth:`__int__`, then :meth:`__trunc__` is called to implement the
built-in function :func:`int`.

.. method:: object.__index__(self)

Called to implement :func:`operator.index`, and whenever Python needs to

0 comments on commit 308eab9

Please sign in to comment.
You can’t perform that action at this time.