Сначала проверьте тип argument_twee
или, скорее, посмотрите, можете ли вы рассматривать его как Fraction
.
def __add__(self, argument_twee):
try:
n = argument_twee.noemer
d = argument_twee.teller
except AttributeError:
n = argument_twee
d = 1
return breuk(self.teller*n + self.noemer*d, self.noemer*n)
(Можно добавить дополнительные тесты, чтобы поймать нечисловые c аргументы.)
Это будет обрабатывать Fraction(1,2) + 1
. Для обработки 1 + Fraction(1,2)
вам необходимо реализовать __radd__
, который (поскольку желаемое добавление является коммутативным) так же просто, как
__radd__ = __add__