Курс 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"
- Извлечение статей с newspaper3k
- Ускорение кода с помощью векторизации
- Сортировка в Python
- Улучшение читаемости кода в Python
- Скачать видео с YouTube
- Ускоренный импорт библиотек
- Строковое представление объектов
- Конкатенация строк с join() в Python
- Работа с CSV файлами в Python
- Работа с комплексными числами
- Создание треугольника Паскаля
- Пустой оператор pass в Python
- Показ всплывающих окон Tkinter
- Фильтрация последовательности
- Генераторы в Python
- Проблемы с именами переменных
- Парсинг веб-страниц с Beautiful Soup
- Метод matmul для умножения матриц
- Работа с многоуровневыми словарями в Python
- Символ подчеркивания в Python
- Преобразование объекта в строку
- Деление в Python
- Python enumerate() для работы с индексами
- Работа с изменяемыми коллекциями
- Множественное наследование в Python
- Исправление ошибки NameError
- Работа с getopt
- Создание GUI с Tkinter: Entry
- Преобразование типов данных в set comprehension
- Генераторные выражения и islice.
- Объединение словарей в Python
- Операторы Splat и splatty-splat
- Генераторы в Python
- Объединение списков с использованием itertools.chain
- Конструктор в Python
- Извлечение аудио из видео
- Непрерывная проверка в Python
- Отслеживание выполнения программы с библиотекой tqdm
- Объединение строк с помощью метода join
- CSV строка разделение в Python
- Поиск подстроки в строке
- Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
- Получение размера объекта с sys.getsizeof()
- Работа с контекстным менеджером Pool
- Оптимизация памяти в Python
- Назначение максимального и минимального значения переменной в Python.
- Работа с аргументами командной строки в Python
- Виртуальные среды в Python
- Переопределение метода __pow__















