Курс 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. Логический оператор «and» в Python
  2. Работа с типами данных в Python с помощью pydantic.
  3. Python: отличительная особенность — отступы
  4. Функция reduce() в Python
  5. Реализация метода __abs__ в Python
  6. Взаимодействие с внешними процессами в Python
  7. Обновление и получение данных в SQLite
  8. Python Поверхностное Копирование
  9. Использование функции product
  10. Сортировка HTML по CSS-селектору
  11. Цикл for в Python
  12. Итерация по коллекции в Python
  13. Python: отсутствие точек с запятыми
  14. Метод title() в Python
  15. Блок else в циклах Python
  16. Определение функций с необязательными аргументами
  17. Работа с файлами в Python
  18. Преобразование списков в словарь
  19. Инверсия списка и строки в Python
  20. Синхронизация потоков с time.sleep()
  21. Стать Python-разработчиком
  22. Условное добавление элементов в список
  23. Измерение потребления памяти при сортировке
  24. Комплексные числа в Python
  25. Работа с файловой системой в Python
  26. Замена подстроки
  27. Проверка памяти объекта
  28. Создание функций с произвольным количеством аргументов
  29. Измерение времени выполнения кода
  30. Переопределение метода divmod
  31. Генераторы по генератору
  32. Отправка POST запроса на сервер.
  33. Пропуск строк в файле с itertools
  34. Объединение списков в Python.
  35. Оформление кода по PEP 8
  36. Пропуск начальных строк с помощью dropwhile()
  37. Анонимные функции в Python
  38. Работа с необработанными строками
  39. Python и Монти Пайтон
  40. Замена переменных в Python
  41. Условные выражения в Python
  42. Поиск повторов в списке
  43. Mad Libs Generator

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