Курс 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. Метод rlshift для битового сдвига
  2. Нахождение максимального значения и его индекса в списке
  3. Функции классификации комплексных чисел
  4. Списки в Python: синтаксис представления
  5. %pinfo: получение информации об объекте
  6. Рациональные числа в Python
  7. Закрытие файла в Python
  8. Проверка ввода с помощью isdigit
  9. Встроенные функции Python
  10. Удаление элементов из списка
  11. Генераторы и сеты в Python
  12. Гибкие функции Python
  13. Метод matmul для умножения матриц
  14. Работа с deque из collections
  15. Проверка типов с помощью isinstance
  16. Работа с CSV файлами в Python
  17. Работа со строками в Python.
  18. Создание итерируемых объектов
  19. Атрибуты массивов в Numpy
  20. Декораторы в Python
  21. Принципы программирования
  22. Преобразование данных в Python
  23. Создание словарей в Python
  24. Склеивание строк через метод join()
  25. Асинхронное выполнение задач в процессах
  26. Поиск шаблона в начале строки
  27. Расчет времени выполнения
  28. Реализация метода __abs__ в Python
  29. Извлечение аудио из видео
  30. Блок try-except-else
  31. Асинхронный код в Python
  32. Создание списка через итерацию
  33. Генерация тестовых данных с factory_boy
  34. Новшества Flask 2.0
  35. Метод rsub для пользовательских чисел
  36. Оптимизация интернирования строк
  37. Особенности запятых в Python
  38. Модуль math: константы π и e
  39. Ускорение обработки данных с %autoawait
  40. Извлечение аудио из видео

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