yolga
@yolga
Постигающий

Класс Fraction: как добавить операции с целыми числами?

День добрый! Я написал код для работы с дробями:
spoiler
class Fraction:
    
    def __init__(self, a, b):
        self.a = a
        self.b = b
        
    def __str__(self):
        return '{}/{}'.format(self.a, self.b)
    
    def __add__(self, other):
        return Fraction(self.a + other.a, self.b + other.b)
    
    def __sub__(self, other):
        return Fraction(self.a - other.a, self.b - other.b)
    
    def __mul__(self, other):
        return Fraction(self.a * other.a, self.b * other.b)

Вызовы типа Fraction(10, 1) + Fraction(2, 20) работают отлично. Но задание ещё звучит так:

Предполагается, что операция сложения/вычитания/умножения может проводиться как только между дробями, так и между дробью и целым числом.

То есть должен работать вызов Fraction(1, 2) + 3. А у меня выкидывает AttributeError: 'int' object has no attribute 'a', потому что не хватает нужного куска кода. А я не понимаю, что там должно быть записано. Помогите пожалуйста.
  • Вопрос задан
  • 2074 просмотра
Решения вопроса 1
LazyTalent
@LazyTalent
Data Engineer, Freelancer
def __add__(self, other):
        if isinstance(other, int):
            return результат сложения дроби и целого числа
        return Fraction(self.a + other.a, self.b + other.b)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы