Курс 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. Работа с датой и временем в Python
  3. Переопределение метода __eq__
  4. Генераторы в Python
  5. Создание списков в Python
  6. Работа с географическими данными в Python
  7. Работа с итераторами в Python
  8. Функции в одну строку
  9. Python reversed() функция
  10. Методы list в Python
  11. Beautiful Soup — извлечение данных из HTML
  12. Получение размера объекта с sys.getsizeof()
  13. Python OrderedDict и fromkeys() — работа с словарями
  14. Порядок операций в Python
  15. Кортежи в Python: особенности и преимущества
  16. Методы обработки строк в Python
  17. Работа с itertools
  18. Функции с необязательными аргументами
  19. split() без разделителя
  20. Установка и использование Virtualenv
  21. Переворот строки с использованием цикла
  22. Имена объектов в Python
  23. Преобразование данных в Python
  24. Поиск самого частого элемента
  25. Метод classmethod
  26. Работа с YAML в Python
  27. Добавление элементов в список
  28. Встроенные функции Python
  29. Lambda-функция в Python: использование с map() и sum()
  30. Ускорение выполнения кода в Python
  31. Проверка дубликатов в Python
  32. Создание задания в Cron
  33. Python и Монти Пайтон
  34. Разбиение текста в Python
  35. lru_cache оптимизация функций
  36. Работа со строками в Python.
  37. Оператор обр. импликации
  38. Python и Юникод: работа с цифрами
  39. Отслеживание прогресса с tqdm
  40. Блок else в Python
  41. Оптимизация памяти в Python
  42. Python itertools combinations() — группировка элементов
  43. Поиск индекса элемента
  44. Объединение словарей в Python
  45. Правила именования переменных
  46. Поиск подстроки в строке

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