Курс 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"
- Транспонирование матрицы в Python
- Проверка запуска скрипта или импорта модуля
- Работа с JSON данными в Python
- Основы работы со списками
- Проверка условий в Python
- Работа с NumPy массивами
- Структура строк в Python
- Оптимизация параметров в Python
- Экспорт функций в Python
- Подсчет элементов с помощью Counter из collections
- Поток данных в Python
- Замена текста с помощью sub
- Итераторы с потерямиZIP
- Управление асинхронными задачами с помощью Semaphore
- Объединение словарей в Python
- Оптимизация гиперпараметров с Scikit Optimize
- capitalize() — изменение регистра первого символа строки
- Декораторы в Python
- Преобразование строки в число
- Блок else в циклах.
- Удаление символов новой строки в Python.
- Лямбда-функции в Python
- Декоратор Ajax required
- Декораторы с аргументами
- Лямбда-функции в Python
- Фильтрация элементов с помощью islice
- Тернарный оператор в Python
- Обновление и получение данных в SQLite
- Множественное присваивание в Python
- Подписка на Kaspersky Team
- Запуск Python из интерпретатора
- Работа с f-строками 2.0
- Методы classmethod и staticmethod
- Метод gt в Python
- Enum в Python
- Проверка строки на палиндром
- Работа с zip-архивами в Python
- Получение идентификатора объекта в памяти
- Метод remove() для удаления элемента из списка
- Пропуск строк в файле с itertools
- Проверка на палиндром
- Решение переменной Шредингера
- Метод ior для битовых операций
- Копирование объектов в Python
- Модуль os: работа с файлами и папками
- Генераторы по генератору
- Декоратор проверки активности















