Курс 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. Установка и использование emoji
  2. Python 3.12: переиспользование кавычек
  3. Генераторные функции в Python
  4. Добавление вложенных списков
  5. Переопределение метода __eq__
  6. Работа с комбинациями в Python.
  7. Метод __getitem__ в Python
  8. Обновление данных через PUT запрос
  9. Каналы Senior: Python, Java, Frontend, SQL, C++
  10. Создание списка дат
  11. Переворот списка в Python
  12. Удаление элементов из списка в Python
  13. Генераторы в Python
  14. Возврат нескольких значений из функции
  15. Функции высшего порядка в Python
  16. Модуль math: основные функции
  17. Применение функции map() с лямбда-функциями
  18. Изменение логики работы с временем
  19. JSON в Python: модуль, dump, dumps, load
  20. Импорт в Python: список all
  21. Функция count() в Python
  22. Mad Libs Generator
  23. Отладчик pdb: начало работы
  24. Метод join() для объединения элементов строки
  25. Защита данных в Python
  26. Numpy: объединение массивов
  27. Область видимости переменных
  28. Тестирование функции сложения
  29. Подсчет элементов с помощью Counter
  30. Хранение переменных в Python.
  31. Работа с Colorama
  32. Определение имен функций
  33. Управление доступом к модулю
  34. Лямбда-функции в цикле
  35. Копирование в Python
  36. Комплексные числа в Python
  37. Сортировка и обратный порядок
  38. Создание словаря и множества
  39. Big O оптимизация
  40. Python и Монти Пайтон
  41. PrettyTable: создание таблицы
  42. Разделение строки на подстроки в Python
  43. Сортировка с помощью параметра key
  44. Парсинг веб-страниц с Beautiful Soup
  45. Функция map() в Python

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