Skip to content

doc: Mention the missing reflected operations #119931

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading