Курс Python → Переопределение метода divmod

Python предоставляет возможность переопределения методов для пользовательских объектов, что позволяет расширить стандартный функционал языка. В данном случае, для работы с операторами деления и остатка от деления, можно воспользоваться методом divmod. Переопределение этого метода позволяет объекту вести себя так, будто это стандартная функция divmod(), возвращая результат в виде кортежа.

Для того чтобы переопределить метод divmod для пользовательского объекта, необходимо в классе определить специальный метод __divmod__. Этот метод будет вызываться при использовании оператора divmod для объектов данного класса. Внутри метода необходимо определить логику вычисления частного и остатка от деления и вернуть их в виде кортежа.


class CustomNumber:
    def __init__(self, value):
        self.value = value
    
    def __divmod__(self, other):
        quotient = self.value // other
        remainder = self.value % other
        return (quotient, remainder)

num1 = CustomNumber(10)
num2 = 3
result = divmod(num1, num2)
print(result)  # Выведет (3, 1)

В данном примере создается класс CustomNumber, у которого переопределен метод __divmod__. При вызове функции divmod для объектов данного класса, будет возвращен кортеж с результатом деления и остатком от деления. Таким образом, можно легко работать с операциями деления и остатка от деления для пользовательских объектов в Python.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Особенности множеств в Python
  2. Измерение времени выполнения с помощью time
  3. Проверка элементов списка условием
  4. Python: динамическая типизация и проверка типов
  5. Работа с дробями в Python
  6. Проверка кортежей.
  7. Правила именования переменных
  8. Логический оператор «and» в Python
  9. Получение срезов итераторов
  10. Обработка ошибок в JSON данных
  11. Проверка существования переменной с оператором :=
  12. Декоратор для группы пользователей в Django
  13. Поиск элементов BeautifulSoup
  14. split() — разделение строки
  15. Установка и использование Python-dateutil
  16. Многопроцессорное программирование в Python
  17. Ввод нескольких значений
  18. Область видимости переменных
  19. Декораторы в Python
  20. Использование *args
  21. Удаление символов новой строки в Python.
  22. Создание новых списков в Python
  23. Работа с IP-адресами в Python
  24. Вставка переменных в шаблоны Flask
  25. Генераторы списков
  26. Инициализация переменных
  27. Метод title() в Python
  28. Переменные класса и экземпляра
  29. Перемещение и удаление файлов в Python
  30. Работа с срезами в Python
  31. Python и Монти Пайтон
  32. Транспонирование 2D-массива с помощью zip
  33. Использование двоеточия в Python
  34. Экспорт данных в файл.
  35. Создание виртуальной среды
  36. Использование модуля __future__
  37. Итераторы в Python
  38. Сортировка HTML-элементов
  39. Изменяемые и неизменяемые объекты
  40. Итераторы в Python
  41. Howdoi — получение ответов из терминала
  42. Работа со случайными элементами
  43. Обновление ключей в Python
  44. Очистка данных с Pandas

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