Курс 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. Создание спинбокса в tkinter
  2. Метод gt в Python
  3. Метод округления чисел
  4. Основы слова
  5. Регистрация на хакатоне
  6. Python union() функция — объединение множеств
  7. Асинхронное выполнение задач в процессах
  8. Разделение строк в Python
  9. Работа с NumPy массивами
  10. Фильтрация входных данных в Python
  11. Вывод сложных структур данных с помощью pprint
  12. Логирование с Logzero
  13. Списки: объединение, изменение
  14. Скрытие вывода данных
  15. Переопределение метода __rshift__
  16. Перевод текста с Python Translator
  17. Генератор бросков кубиков
  18. Делегирование в Python
  19. Группы исключений в Python
  20. Экранирование символов в Python
  21. Установка и использование библиотеки google
  22. Преобразование чисел в Python
  23. Декораторы с аргументами в Python
  24. Переопределение метода __floordiv__
  25. Функция enumerate в Python
  26. Создание .exe файла с pyinstaller
  27. Атрибуты массивов в Numpy
  28. Отслеживание выполнения программы с библиотекой tqdm
  29. Проверка кортежей.
  30. Хеширование паролей с использованием salt
  31. Декораторы в Python
  32. Генераторы данных
  33. Создание виртуальной среды
  34. Метод bool() в Python
  35. Хеши в Python
  36. Метаклассы в Python
  37. Отделение звука от видео
  38. Основы работы с os
  39. Преобразование символов в нижний регистр
  40. Итерации в Python
  41. Python Метод sleep() времени
  42. Асинхронный код в Python
  43. Оптимизация строк в Python
  44. Преобразование вложенного списка
  45. Обновление шаблона base.html

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