Курс 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. Выход из профиля в Django
  2. Замена текста с re.sub()
  3. Оператор in для проверки наличия элемента
  4. Декораторы в Python
  5. Создание пользовательской коллекции в Python
  6. Работа с Colorama
  7. Установка и использование модуля «howdoi»
  8. Генераторы в Python
  9. Python groupby() из itertools: работа с повторяющимися элементами
  10. Python Метод sleep() времени
  11. Тайное преобразование типа ключа
  12. Операции с массивами в NumPy
  13. Добавление вложенных списков
  14. Копирование списков в Python
  15. Метод invert для побитового отрицания
  16. Итераторы в Python
  17. Защита данных в Python
  18. Создание детектора плагиата
  19. Генератор чисел Фибоначчи
  20. Lambda Functions in Python
  21. Множественные конструкторы в Python
  22. PrettyTable: создание таблицы
  23. Метод сравнения объектов в Python
  24. Применение функции к списку
  25. Удаление элемента по индексу
  26. Python enumerate() использование
  27. Лямбда-функции в Python
  28. Особенности ключей словаря в Python
  29. Библиотека Chartify: руководство
  30. Python 3.12: переиспользование кавычек
  31. Поиск всех индексов подстроки
  32. Синтаксис переменных цикла в Python
  33. Зарезервированные слова в Python
  34. Вызов функций по строке в Python.
  35. Создание уникального проекта
  36. Открытие и запись файлов
  37. Срез в Python
  38. Профилирование кода на Python
  39. PATCH-запрос с библиотекой requests
  40. Построение графиков в Matplotlib
  41. Операторы объединения в Python 3.9
  42. Проверка списка: any() и all()
  43. Объединение списков в строку
  44. Математические функции в Python
  45. Разрешение имен в Python
  46. Установка и использование библиотеки google

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