Курс 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. Оператор += в Python
  3. Работа с defaultdictами в Python
  4. Переворот строки с помощью срезов
  5. Область видимости переменных
  6. Извлечение новостей с помощью newspaper3k
  7. Порядок и длина множеств в Python
  8. Проверка типа данных
  9. Функции в Python: создание и вызов
  10. Лямбда-функции для min/max
  11. Подсчет элементов в Python
  12. Печать календаря в Python
  13. Поиск наиболее частого элемента списке
  14. Поиск с библиотекой Google
  15. Сравнение def и lambda функций в Python
  16. Работа с файлами в Python
  17. Функции-генераторы в Python
  18. Группы исключений в Python
  19. Функции range() в Python
  20. Python reversed() vs срез[::-1]
  21. Форматирование объектов с модулем pprint
  22. Преобразование чисел в Python
  23. Имена объектов в Python
  24. UserList в Python: Описание и примеры использования
  25. Метод count в Python: почему count(», ») возвращает 4?
  26. Преобразование символов в нижний регистр
  27. Создание GUI с Tkinter: Entry
  28. Обработка ошибок ввода данных
  29. Правила именования переменных
  30. Срез списка в Python
  31. Транспонирование 2D-массива с помощью zip
  32. Работа со словарями Python
  33. Оператор is в Python
  34. Печать в одной строке
  35. Подсказки типов в Python
  36. Определение относительного пути
  37. Динамическая типизация в Python
  38. Отладка производительности Python
  39. Генерация QR-кодов с библиотекой qrcode
  40. Удаление ресурса в Python
  41. Использование type hints
  42. Работа с парами ключ-значение
  43. Работа с SQLite в Python
  44. Работа с файлами и директориями в Python.
  45. Оценка выражений генератора в Python
  46. Генерация случайных чисел Python

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