Курс 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. Генераторы и сеты в Python
  4. Профилирование с cProfile
  5. Преобразование числа в список цифр
  6. Оператор in для Python
  7. Область видимости переменных
  8. Получение текущей директории
  9. Форматирование строк в Python
  10. Оператор Walrus в Python 3.8
  11. Подсчет элементов в Python
  12. Метод add для класса Vector
  13. Преобразование регистра строк
  14. Заказ карты Тинькофф Black
  15. Метод index() в Python
  16. Логирование с Logzero
  17. Создание списков в Python
  18. Поиск элементов BeautifulSoup
  19. Работа с каталогами в Python
  20. Замена текста с помощью sub
  21. Использование defaultdict в Python
  22. Асинхронное программирование с asyncio
  23. Pillow: работа с изображениями
  24. Кортеж в Python: создание, доступ, изменение
  25. Библиотека wikipedia для Python
  26. Определение функций с необязательными аргументами
  27. Работа с очередями в Python
  28. Пустой оператор pass в Python
  29. Хешируемые ключи в Python
  30. Использование эмодзи в Python
  31. UserList в Python: Описание и примеры использования
  32. Тест скорости набора текста на Python
  33. Функция rsplit() в Python
  34. Роль object и type в Python
  35. Фильтрация последовательности
  36. Работа со словарями в Python
  37. Аргумент по умолчанию
  38. Установка Python3.7 и PIP
  39. Список и кортеж в Python
  40. Пространство имен в Python
  41. Возврат нескольких значений
  42. Нахождение отличий в списках
  43. Декораторы в Python
  44. Скачать видео с YouTube
  45. Работа с множествами в Python
  46. Подсчет частоты элементов с Counter

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