Курс 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. Использование функции product
  2. Оптимизация создания строк
  3. Инверсия списка и строки
  4. Работа с deque из collections
  5. Экспорт внешнего файла с помощью writefile
  6. Оператор деления для класса Rational
  7. Проверка подстроки в строке с помощью in
  8. Группировка элементов Python
  9. Основы работы с базами данных в Python
  10. Codecademy в Telegram
  11. Изменение списка срезом
  12. Создание вложенного генератора
  13. Закрытие файла в Python
  14. Python itertools combinations() — группировка элементов
  15. Нан-рефлексивность в Python
  16. Импорт модулей в Python 3.12
  17. Стать Python-разработчиком
  18. Работа с индексами списков
  19. Итерация по копии коллекции
  20. *args и **kwargs в Python
  21. Выключение компьютера с помощью Python
  22. Пустой оператор pass в Python
  23. Форматирование строк в Python
  24. Big O оптимизация
  25. Конвертация текстовых чисел с помощью Numerizer
  26. Атрибуты массивов в Numpy
  27. Обратное распространение ошибки
  28. Операции с числами в Python
  29. Python: отличительная особенность — отступы
  30. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  31. Класс UserDict: дополнительная функциональность
  32. Аннотации типов в Python
  33. Работа со словарями в Python
  34. Mad Libs Generator
  35. Установка Python — Простое руководство
  36. Обработка ошибки IndexError
  37. Проверка надежности пароля на Python
  38. Создание namedtuple списком полей
  39. Декораторы классов
  40. Работа с дробями в Python
  41. Классы данных в Python
  42. Метод rrshift для пользовательских объектов
  43. Создание задания в Cron
  44. Структурирование данных с Pydantic
  45. Условное добавление элементов в список
  46. Проверка ввода с помощью isdigit
  47. Форматирование строк в Python.
  48. Асинхронное программирование с asyncio

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