Курс 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. Работа с географическими данными.
  2. Создание и операции с дробями
  3. Многострочные строки в Python
  4. Обработка исключений в Python
  5. Функция print() — вывод информации
  6. Отправка поздравлений по дню рождения
  7. Генератор бросков кубиков
  8. Пропуск начальных строк с помощью dropwhile()
  9. Извлечение данных из JSON
  10. Возврат значений из генератора
  11. Метод get() для словарей
  12. Логирование с Logzero: ротация файла
  13. Создание OrderedDict
  14. Роль ключевого слова self
  15. Роль object и type в Python
  16. Удаление элемента по индексу
  17. Добавление Progressbar в Python
  18. Создание и использование модулей в Python
  19. Вывод переменной и строки в Python
  20. Лямбда-функции в defaultdict
  21. Преобразование Word в PDF с Spire.Doc
  22. Выход из профиля в Django
  23. Генераторы в Python
  24. Генераторы по генератору
  25. Сравнение объектов в Python
  26. Оператор continue в Python
  27. Измерение времени выполнения в Python
  28. Построение графиков в Matplotlib
  29. Копирование файлов с shutil()
  30. Преобразование range в итератор
  31. Принципы LSP и ISP в Python
  32. Асинхронное программирование с asyncio
  33. Генерация случайных чисел в Python
  34. Просмотр внешних файлов в %pycat
  35. Метод Enumerate() для списков
  36. Особенности множеств в Python
  37. Отправка POST запроса на сервер.
  38. Сохранение и загрузка модели в PyTorch
  39. Оператор деления для класса Rational
  40. Отладка регулярных выражений в Python
  41. Профилирование с cProfile
  42. Метод __ilshift__ для битового сдвига влево
  43. Обновление множества в Python
  44. OrderedDict — упорядоченный словарь
  45. Работа с переменными в Python
  46. Решатель судоку на Python с pygame
  47. Методы shutil для работы с файлами
  48. Форматирование строк в Python.

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