I have two user-defined classes, a
and b
. For such an augmented addition assignment between them:
a = b
Where a
returns NotImplemented
when it encounters b
, is it expected that Python will look for a reflected augmented assignment in the other operand, i.e. b
?
(Edited in response to comments)
I have noticed that already a slightly similar concept exists in some other magic methods, like __format__(self, other)
:
"A string {var:fmt_str}".format(var=b) === b.__format__("fmt_str")
CodePudding user response:
Nope. No reflected augmented assignment hooks. If __iadd__
fails, this operation falls back to __add__
and __radd__
.
You can check the big list of numeric operator hooks in the data model docs to verify that there aren't any reflected augmented assignment hooks there.