Курс 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. Поиск HTML-элементов с BeautifulSoup
  4. Логирование в Python
  5. Работа с необработанными строками
  6. Добавление вложенных списков
  7. Concrete Paths — метод .with_suffix()
  8. Работа со словарями
  9. Поиск уникальных элементов строкой в Python
  10. Функция enumerate() — Python
  11. Оператор in в Python
  12. Методы HTTP запросов в Flask
  13. Присвоение значений переменным в Python
  14. Получение списка файлов в директории с использованием os
  15. Python 3.12: переиспользование кавычек
  16. Аргумент по умолчанию
  17. Проверка индексов коллекции
  18. Установка пакетов с помощью pip
  19. Colorama: окрашивание текста в Python
  20. Работа с YAML в Python
  21. Оптимизация памяти с __slots__
  22. Работа с YAML в Python: PyYAML.
  23. Преобразование в float
  24. Метод title() в Python
  25. Функция pow() — возвести число в степень
  26. Генераторы и сеты в Python
  27. Защита данных в Python
  28. Python UserString — создание подклассов строк
  29. Многострочные комментарии в Python
  30. Проверка кортежей.
  31. Установка и использование Virtualenv
  32. Проверка элемента в множестве.
  33. Перетасовка списков в Python
  34. Методы и функции в Python
  35. Python Аргументы по умолчанию
  36. Наиболее частотные элементы с помощью Counter
  37. Особенности множеств в Python
  38. Тестирование с responses
  39. Проверка переменных окружения в Python
  40. Логические операторы в Python
  41. Компиляция регулярных выражений
  42. Курс Data Scientist в медицине
  43. Удаление элементов во время итерации
  44. globals и locals
  45. Нахождение отличий в списках
  46. Фильтрация элементов с помощью islice
  47. Работа с Telegram API на Python

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