tg-me.com/pythrone/11
Create:
Last Update:
Last Update:
Что выведет этот код?
Когда мы выполняем операции вида:
left + right
Вызывается метод
left.__add__
, но если left.__add__
возвращает NotImplemented
, то вызываетсяright.__radd__
, а если и этот метод возвращает NotImplemented
, то выбрасывается ошибка TypeError
.В нашем случае:
x = MyInt
и мы переопределили метод __add__
, принтанется int __add__
, но далее мы возвращаем NotImplemented
что заставляет вызвать метод MyFloat.__radd__
.А
MyFloat.__add__
не будет вызыван, т.к. всегда вызывается __add__
левого операнда и только __radd__
правого соответсвенно.В итоге принтанется:
int __add__
float __radd__
10.0
#числа
BY PyThrone

Share with your friend now:
tg-me.com/pythrone/11