Курс 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. Метод join() для объединения строк
  2. Создание директории в Python
  3. Цепные операции в Python
  4. Оператор распаковки в Python
  5. Транспонирование матрицы
  6. Хешируемые ключи в Python
  7. Оптимизация интернирования строк
  8. Многоточие в Python
  9. Список переменных с %who
  10. Работа со слайсами
  11. Оператор Walrus: правильное использование
  12. Аннотации типов в Python
  13. Magic Commands — улучшение работы с Python
  14. Конвертация текстовых чисел с помощью Numerizer
  15. Использование *args
  16. Переопределение метода __eq__
  17. Оператор in для проверки наличия элемента
  18. Создание словарей и множеств в Python
  19. Поиск самого длинного слова в списке с использованием max()
  20. Принципы Zen of Python
  21. Решатель судоку на Python с pygame
  22. Профилирование данных с Pandas.
  23. Получение текущей даты в Python
  24. Имена объектов в Python
  25. Передача неизвестных аргументов в Python.
  26. Методы HTTP запросов в Flask
  27. Создание и инициализация объектов
  28. Поиск с помощью регулярных выражений
  29. Модуль math: константы π и e
  30. Операции с комплексными числами
  31. Логирование с Loguru
  32. Запуск Python из интерпретатора
  33. Функции классификации комплексных чисел
  34. Вычисление логарифмов в Python
  35. Итераторы в Python
  36. Многострочные комментарии в Python
  37. Генераторы в Python
  38. Генерация случайных данных в NumPy
  39. Работа с YAML в Python
  40. Применение функции map() с лямбда-функциями
  41. Список импортированных модулей в Python
  42. Преобразование букв в нижний регистр
  43. Работа с CSV файлами
  44. Управление User-Agent в Python
  45. Оптимизация параметров в Python
  46. Названия столбцов в Python таблицах
  47. Метод radd для пользовательских чисел

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