Курс 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"

  1. Ветвление выражения в Python
  2. Улучшенные подсказки для импорта в Python 3.12
  3. Изменение списка срезами
  4. Иерархия классов в Python
  5. Выражения-генераторы в Python
  6. Python union() функция — объединение множеств
  7. Виртуальное окружение Python
  8. Функции в одну строку
  9. Получение атрибутов и методов класса
  10. Метод rrshift для пользовательских объектов
  11. Функции-генераторы в Python
  12. Работа с множествами в Python
  13. Преобразование списков в словарь
  14. Создание файла с проверкой ошибки
  15. Функция rsplit() в Python
  16. Порядок операций в Python
  17. Python enumerate() функции
  18. Переопределение метода
  19. Удаление дубликатов из списка
  20. Возврат нескольких значений
  21. Сортировка в Python
  22. Конкатенация строковых литералов
  23. Руководство по Pymorphy2
  24. Запрос DELETE с библиотекой requests
  25. Модуль itertools: комбинации и перестановки
  26. Обезопасьте ввод данных
  27. Декораторы классов
  28. Обработка исключений в Python
  29. Лямбда-функции для min/max
  30. Обработка исключений
  31. Многопоточность и асинхронное программирование в Python
  32. Установка виртуального окружения Python
  33. Преобразование списка в словарь через генератор
  34. Генераторы списков в Python
  35. Определение имен функций
  36. Обратный список чисел
  37. Замена символов в Python
  38. Функция enumerate в Python
  39. Аннотации типов в Python
  40. Применение функции к элементам списка
  41. Динамические маршруты во Flask
  42. Метод splitlines() для разделения строк
  43. История Python
  44. Метод gt в Python
  45. Конкатенация строк с помощью join()
  46. Функция reduce() из модуля functools

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