Курс 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. Добавление кнопки в tkinter
  2. split() без разделителя
  3. Метод radd для пользовательских чисел
  4. Получение идентификатора объекта в памяти
  5. Отображение HTML кода в Python
  6. Аннотации типов в Python
  7. Изменение логики работы с временем
  8. Группировка элементов Python
  9. Метод Enumerate() для списков
  10. Создание тестовых данных с Faker
  11. Оператор += для объединения строк
  12. Множественное назначение в Python
  13. Декораторы в Python
  14. Отправка поздравлений по дню рождения
  15. Генератор бросков кубиков
  16. Подсчет элементов в списке с Counter
  17. Тестирование модели в PyTorch
  18. Библиотека Chartify: руководство
  19. Метод get для словарей
  20. Функции высшего порядка в Python
  21. Оператор «or» в Python
  22. Проектирование Singleton с метаклассом
  23. Мониторинг памяти с Pympler
  24. None в Python: использование и особенности
  25. Эффективная конкатенация строк в Python
  26. Сравнение строк в Python
  27. Модуль subprocess: запуск внешних команд
  28. Оператор морж в Python 3.8
  29. Python Поверхностное Копирование
  30. Управление ресурсами с контекстными менеджерами
  31. Работа с итераторами в Python
  32. Переворот строки с использованием цикла
  33. Работа с дробями в Python
  34. Список импортированных модулей в Python
  35. Работа с кортежами в Python
  36. Метод index() в Python
  37. Конструктор в Python
  38. Хеши в Python
  39. Codecademy в Telegram
  40. Работа с контекст-менеджером «with»
  41. Python Ellipsis использование
  42. Поиск индекса элемента
  43. Подсчет часто встречающихся элементов
  44. Работа с массивами в Numpy

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