Курс 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. Метод repr() в Python
  3. List Comprehension Tutorial
  4. Конвертация коллекций в Python
  5. Функции range() в Python
  6. Методы в Python
  7. Работа с комплексными числами
  8. Сравнение def и lambda в Python
  9. Частичное совпадение пользовательского ввода в Python 3.10
  10. Хэш-функции в Python
  11. Список переменных с %who
  12. Метод pos в Python
  13. Рекурсия для обращения строки
  14. Получение имени функции с помощью inspect
  15. Списки в Python
  16. Управление фоновыми задачами в Python
  17. Проблемы с dict в Python
  18. Чтение бинарного файла в Python.
  19. Динамические маршруты во Flask
  20. Создание GUI на Tkinter
  21. Установка виртуального окружения Python
  22. Удаление элемента по индексу
  23. Функции высшего порядка в Python
  24. Enum в Python
  25. Распаковка элементов массива
  26. Скрытие вывода данных
  27. Функция product() в Python
  28. Парсинг статей с Newspaper3k
  29. Частичное совпадение ввода
  30. Карта бомбоубежищ в Москве и Питере
  31. Переворот последовательности
  32. Работа с асинхронными задачами в Python
  33. Обработка ошибок ввода данных
  34. Инвертирование словаря
  35. Поиск индекса элемента в списке
  36. Работа с YAML в Python
  37. Оформление кода по PEP 8
  38. Solidity для DeFi Ethereum
  39. Операции с массивами в NumPy
  40. Python reversed() функция
  41. Моржовый оператор в Python 3.8
  42. Создание списков в Python
  43. Просмотр атрибутов и методов класса
  44. Построение графиков в терминале с bashplotlib

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