Курс 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. Извлечение статей с newspaper3k
  2. Ускорение кода с помощью векторизации
  3. Сортировка в Python
  4. Улучшение читаемости кода в Python
  5. Скачать видео с YouTube
  6. Ускоренный импорт библиотек
  7. Строковое представление объектов
  8. Конкатенация строк с join() в Python
  9. Работа с CSV файлами в Python
  10. Работа с комплексными числами
  11. Создание треугольника Паскаля
  12. Пустой оператор pass в Python
  13. Показ всплывающих окон Tkinter
  14. Фильтрация последовательности
  15. Генераторы в Python
  16. Проблемы с именами переменных
  17. Парсинг веб-страниц с Beautiful Soup
  18. Метод matmul для умножения матриц
  19. Работа с многоуровневыми словарями в Python
  20. Символ подчеркивания в Python
  21. Преобразование объекта в строку
  22. Деление в Python
  23. Python enumerate() для работы с индексами
  24. Работа с изменяемыми коллекциями
  25. Множественное наследование в Python
  26. Исправление ошибки NameError
  27. Работа с getopt
  28. Создание GUI с Tkinter: Entry
  29. Преобразование типов данных в set comprehension
  30. Генераторные выражения и islice.
  31. Объединение словарей в Python
  32. Операторы Splat и splatty-splat
  33. Генераторы в Python
  34. Объединение списков с использованием itertools.chain
  35. Конструктор в Python
  36. Извлечение аудио из видео
  37. Непрерывная проверка в Python
  38. Отслеживание выполнения программы с библиотекой tqdm
  39. Объединение строк с помощью метода join
  40. CSV строка разделение в Python
  41. Поиск подстроки в строке
  42. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  43. Получение размера объекта с sys.getsizeof()
  44. Работа с контекстным менеджером Pool
  45. Оптимизация памяти в Python
  46. Назначение максимального и минимального значения переменной в Python.
  47. Работа с аргументами командной строки в Python
  48. Виртуальные среды в Python
  49. Переопределение метода __pow__

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