Курс Python → Оператор деления для класса Rational

Класс Rational представляет собой рациональное число, которое состоит из числителя и знаменателя. Для того чтобы реализовать оператор деления / для объектов этого класса, необходимо переопределить метод truediv. Этот метод принимает два аргумента: self — объект, для которого вызывается метод, и other — объект, с которым производится операция деления.

Внутри метода truediv происходит проверка типа операнда other. Если other также является объектом класса Rational, то выполняется деление двух дробей. Для этого числитель первой дроби умножается на знаменатель второй, а знаменатель первой дроби умножается на числитель второй. Таким образом, мы получаем результат деления двух рациональных чисел.

def truediv(self, other):
    if isinstance(other, Rational):
        numerator = self.numerator * other.denominator
        denominator = self.denominator * other.numerator
        return Rational(numerator, denominator)
    elif isinstance(other, (int, float)):
        denominator = self.denominator * other
        return Rational(self.numerator, denominator)
    else:
        raise TypeError("Unsupported operand type for division")

Если операнд other не является ни объектом класса Rational, ни числом, то метод truediv вызывает исключение TypeError. Это позволяет обработать ситуацию, когда пытаемся выполнить операцию деления с неподдерживаемым типом данных.

Переопределение метода str позволяет объекту класса Rational выводиться в виде строки. Это удобно при работе с дробями, так как позволяет легко представлять результаты операций в удобочитаемом формате. Переопределение метода truediv позволяет объекту поддерживать стандартную математическую операцию деления в Python, что делает работу с рациональными числами более удобной и интуитивно понятной.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Создание матрицы в Python
  2. Регулярные выражения в Python
  3. Проблема сравнения словарей
  4. Оператор «and» в Python
  5. Генератор бросков кубиков
  6. Шаблоны и наследование в Flask
  7. Получение размера объекта с sys.getsizeof()
  8. Подписка на @SelectelNews
  9. Преобразование в float
  10. Печать в одной строке
  11. Сравнение строк в Python
  12. Поиск всех индексов подстроки
  13. Функции с необязательными аргументами
  14. Форматирование заголовков в Python
  15. Атрибуты класса и экземпляра в Python
  16. Генераторы в Python
  17. Получение текущего времени в Python
  18. Передача параметров в Python
  19. Копирование списков в Python
  20. Создание словаря в Python
  21. Работа с enumerate()
  22. Изучение объектов с помощью dir()
  23. Печать календаря
  24. Комментарии в Python
  25. Создание даты из строки ISO
  26. Форматирование данных с pprint
  27. Обмен данными с asyncio.Queue
  28. Управление ресурсами в Python
  29. Вычисление времени выполнения
  30. Конвертация изображений в PDF
  31. None в Python: использование и особенности
  32. Подчеркивание в REPL
  33. Виртуальное окружение Python
  34. Разделение списка на гнппы
  35. Область видимости переменных
  36. Конструктор в Python
  37. Создание копии списка в Python
  38. Глобальные переменные в Python
  39. Оператор in в Python
  40. Python: цикл for и оператор присваивания
  41. Структура строк в Python
  42. Использование эмодзи в Python
  43. Обход словаря в Python
  44. Функция zip() в Python
  45. Метаклассы в Python
  46. Оператор деления для класса Rational

Marketello читают маркетологи из крутых компаний