Почему не отрабатывает метод radd?
class PiggyBank:
def __init__(self, coins):
self.coins = coins
def __repr__(self):
return f'PiggyBank({self.coins})'
def __add__(self, other):
return NotImplemented
def __radd__(self, other):
print('Вызов метода __radd__()')
bank1 = PiggyBank(10)
bank2 = PiggyBank(20)
print(bank1 + bank2)
Насколько я понял сначала происходит bank1.__add__(bank2)
- если возвращается NotImplemented или метод просто отсутствует, тогда должен отработать bank2.__radd__(bank1)
.
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
__radd__
не будет вызван для аргументов одного типа.
object.__radd__(self, other)
...
These functions are only called if the left operand does not support the corresponding operation [3] and the operands are of different types.