Skip to content

Commit

Permalink
bpo-41584: clarify when the reflected method of a binary arithemtic o…
Browse files Browse the repository at this point in the history
…perator is called (GH-22505)

(cherry picked from commit d02d824)

Co-authored-by: Brett Cannon <brett@python.org>
  • Loading branch information
miss-islington and brettcannon committed Oct 5, 2020
1 parent 10b4136 commit 4aad1e5
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions Doc/reference/datamodel.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2376,10 +2376,11 @@ left undefined.

.. note::

If the right operand's type is a subclass of the left operand's type and that
subclass provides the reflected method for the operation, this method will be
called before the left operand's non-reflected method. This behavior allows
subclasses to override their ancestors' operations.
If the right operand's type is a subclass of the left operand's type and
that subclass provides a different implementation of the reflected method
for the operation, this method will be called before the left operand's
non-reflected method. This behavior allows subclasses to override their
ancestors' operations.


.. method:: object.__iadd__(self, other)
Expand Down Expand Up @@ -2778,6 +2779,6 @@ An example of an asynchronous context manager class::
method—that will instead have the opposite effect of explicitly
*blocking* such fallback.
.. [#] For operands of the same type, it is assumed that if the non-reflected method
(such as :meth:`__add__`) fails the operation is not supported, which is why the
reflected method is not called.
.. [#] For operands of the same type, it is assumed that if the non-reflected
method -- such as :meth:`__add__` -- fails then the overall operation is not
supported, which is why the reflected method is not called.

0 comments on commit 4aad1e5

Please sign in to comment.