Курс Python → Переопределение оператора % для объектов
Python предоставляет возможность переопределить стандартные арифметические операторы для пользовательских объектов. Например, если вы работаете с комплексными числами или другими типами данных, где операция остатка от деления имеет смысл, то переопределение метода __mod__ может быть очень полезным.
Для того чтобы объект поддерживал стандартную математическую операцию остатка от деления, необходимо определить метод __mod__ в классе этого объекта. Этот метод должен принимать два аргумента — self и other, где self представляет сам объект, а other — объект, с которым выполняется операция.
class MyNumber:
def __init__(self, value):
self.value = value
def __mod__(self, other):
return self.value % other.value
num1 = MyNumber(10)
num2 = MyNumber(3)
print(num1 % num2) # Выведет 1
В приведенном примере мы создали класс MyNumber, который содержит атрибут value и переопределили метод __mod__, чтобы объекты этого класса могли поддерживать операцию остатка от деления. При вызове num1 % num2 будет возвращено остаток от деления числа 10 на 3, то есть 1.
Таким образом, переопределение метода __mod__ позволяет объекту в Python поддерживать стандартную математическую операцию остатка от деления и использоваться в выражениях с этим оператором.
Другие уроки курса "Python"
- Аргументы *args и **kwargs
- Многострочные комментарии в Python
- Подсчет частоты элементов с Counter
- Тестирование с unittest
- Работа со строками в Python
- Структуры данных в Python
- Нарезка списков в Python
- Работа с областями видимости переменных
- Класс Counter() для подсчета элементов
- Логирование в Python
- Проверка файла .py на синтаксис.
- Работа с байтовыми строками в Python
- Создание объекта timedelta
- Функция all() в Python
- Оператор continue в Python
- Область видимости переменных
- Функции any() и all() в Python
- Замена атрибута в именованном кортеже
- Функция enumerate() в Python
- Конкатенация строк с помощью join()
- Замеры производительности в Python
- Создание словарей в Python
- Работа с Telegram API на Python
- Строковое представление объектов
- Обмен значений переменных в Python
- Измерение потребления памяти при сортировке
- Установка и использование pyshorteners
- Генераторы данных
- Создание вложенного генератора
- Измерение времени выполнения кода
- Объединение, распаковка и деструктуризация
- Проверка индексов коллекции
- Многоточие в Python
- Python Метод sleep() времени
- Работа с кортежами в Python
- Генераторы списков
- JMESPath в Python
- Операции с матрицами в Python
- Функция reversed() в Python
- Python Translator: создание локальных переводчиков
- Применение функции к элементам списка
- Документирование функций в Python
- Объединение списков в Python
- Namedtuple в Python
- Тестирование функции сложения
- Цикл while в Python















