Курс 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. Модуль inspect
  3. Оператор is в Python
  4. Объединение словарей в Python
  5. Создание словарей и множеств в Python.
  6. Хранение данных с помощью dataclasses
  7. Разделение списка на гнппы
  8. Добавление элементов в список
  9. Изучение объектов с помощью dir()
  10. Подсчет элементов в Python
  11. Объявление переменных в Python
  12. Лямбда-функции в defaultdict
  13. Возврат нескольких значений
  14. Срезы в Python
  15. Обмен значений переменных в Python
  16. Многострочные комментарии в Python
  17. Генераторы и сеты в Python
  18. Удаление и повторная вставка ключа в OrderedDict
  19. Defaultdict в Python
  20. Enum в Python
  21. Множественное назначение в Python
  22. Создание копии итератора
  23. Обход дочерних элементов BeautifulSoup
  24. Декораторы в Python
  25. Мощь вложенных функций в Python
  26. Объединение словарей в Python
  27. Аргументы *args и **kwargs
  28. Декораторы в Python
  29. Оператор space-invader
  30. Конвертация коллекций в Python
  31. Оператор match в Python
  32. Оформление кода на Python
  33. Оптимизация параметров в Python
  34. Замыкания в Python
  35. Округление в Python
  36. Создание матрицы в Python
  37. Печать комбинаций в Python с Itertools
  38. Работа с исключениями в Python
  39. Создание задания в Cron
  40. Тестирование времени с Freezegun
  41. Копирование объектов в Python
  42. Python groupby() из itertools: работа с повторяющимися элементами
  43. Определение имен функций
  44. Управление контекстом выполнения
  45. Модуль sys: основы
  46. Установка Python — Простое руководство
  47. Создание списка через цикл
  48. Оператор Walrus в Python 3.8
  49. Официальный канал Python в Telegram

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