Курс 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. UserList в Python: Описание и примеры использования
  3. Работа с collections.Counter
  4. Python Enumerate
  5. Применение промокода в Много лосося
  6. Monkey Patching в Python
  7. Переопределение метода __or__()
  8. Частичное совпадение пользовательского ввода в Python 3.10
  9. Создание .exe файла с pyinstaller
  10. Работа с файлами в Python
  11. Установка и использование Telegram API в Python
  12. Объединение словарей в Python
  13. Замыкания в Python
  14. Преобразование данных в Python
  15. Измерение времени выполнения
  16. Глобальные переменные в Python
  17. Запуск асинхронной корутины
  18. Передача аргументов через **arguments
  19. Объединение списков в Python
  20. Списковые включения в Python
  21. Работа с контекст-менеджером «with»
  22. Пропуск начальных строк с помощью dropwhile()
  23. Python: библиотеки и функции
  24. Работа с контекстным менеджером Pool
  25. Метод count() для списка
  26. История Python
  27. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  28. Работа со случайными элементами
  29. Обход словаря в Python
  30. Фильтрация списков с itertools
  31. Метод __ixor__ для побитового исключающего ИЛИ
  32. Форматирование объектов с модулем pprint
  33. Автоматизация с Python
  34. Функция enumerate в Python
  35. Создание директории в Python
  36. Работа с срезами в Python
  37. Группировка элементов в словарь
  38. Добавление элемента к кортежу
  39. Декораторы в Python
  40. Освобождение памяти в Python
  41. Декораторы в Python
  42. Отладка в командной строке
  43. Представление бесконечности в Python
  44. Создание новых списков
  45. Символ подчеркивания в Python
  46. Форматирование строк с f-строками
  47. Переменные в Python

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