[go: nahoru, domu]

Skip to content

Commit

Permalink
doc: Mention the missing reflected special methods for all binary ope…
Browse files Browse the repository at this point in the history
…rations (pythonGH-119931)
  • Loading branch information
paulofreitas committed Jun 4, 2024
1 parent 010ea93 commit bf5e106
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions Doc/reference/expressions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1211,7 +1211,8 @@ Raising ``0.0`` to a negative power results in a :exc:`ZeroDivisionError`.
Raising a negative number to a fractional power results in a :class:`complex`
number. (In earlier versions it raised a :exc:`ValueError`.)

This operation can be customized using the special :meth:`~object.__pow__` method.
This operation can be customized using the special :meth:`~object.__pow__` and
:meth:`~object.__rpow__` methods.

.. _unary:

Expand Down Expand Up @@ -1299,6 +1300,9 @@ This operation can be customized using the special :meth:`~object.__mul__` and
The ``@`` (at) operator is intended to be used for matrix multiplication. No
builtin Python types implement this operator.

This operation can be customized using the special :meth:`~object.__matmul__` and
:meth:`~object.__rmatmul__` methods.

.. versionadded:: 3.5

.. index::
Expand All @@ -1314,8 +1318,10 @@ integer; the result is that of mathematical division with the 'floor' function
applied to the result. Division by zero raises the :exc:`ZeroDivisionError`
exception.

This operation can be customized using the special :meth:`~object.__truediv__` and
:meth:`~object.__floordiv__` methods.
The division operation can be customized using the special :meth:`~object.__truediv__`
and :meth:`~object.__rtruediv__` methods.
The floor division operation can be customized using the special
:meth:`~object.__floordiv__` and :meth:`~object.__rfloordiv__` methods.

.. index::
single: modulo
Expand All @@ -1340,7 +1346,8 @@ also overloaded by string objects to perform old-style string formatting (also
known as interpolation). The syntax for string formatting is described in the
Python Library Reference, section :ref:`old-string-formatting`.

The *modulo* operation can be customized using the special :meth:`~object.__mod__` method.
The *modulo* operation can be customized using the special :meth:`~object.__mod__`
and :meth:`~object.__rmod__` methods.

The floor division operator, the modulo operator, and the :func:`divmod`
function are not defined for complex numbers. Instead, convert to a floating
Expand All @@ -1367,7 +1374,8 @@ This operation can be customized using the special :meth:`~object.__add__` and
The ``-`` (subtraction) operator yields the difference of its arguments. The
numeric arguments are first converted to a common type.

This operation can be customized using the special :meth:`~object.__sub__` method.
This operation can be customized using the special :meth:`~object.__sub__` and
:meth:`~object.__rsub__` methods.


.. _shifting:
Expand All @@ -1388,8 +1396,10 @@ The shifting operations have lower priority than the arithmetic operations:
These operators accept integers as arguments. They shift the first argument to
the left or right by the number of bits given by the second argument.

This operation can be customized using the special :meth:`~object.__lshift__` and
:meth:`~object.__rshift__` methods.
The left shift operation can be customized using the special :meth:`~object.__lshift__`
and :meth:`~object.__rlshift__` methods.
The right shift operation can be customized using the special :meth:`~object.__rshift__`
and :meth:`~object.__rrshift__` methods.

.. index:: pair: exception; ValueError

Expand Down

0 comments on commit bf5e106

Please sign in to comment.