bpo-41584: clarify when the reflected method of a binary arithemtic operator is called (GH-22505)
(cherry picked from commit d02d824e05
)
Co-authored-by: Brett Cannon <brett@python.org>
This commit is contained in:
parent
10b4136bfa
commit
4aad1e5770
|
@ -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)
|
||||
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue