Курс 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. Big O оптимизация
  2. Шаблоны и наследование в Flask
  3. Пропуск начальных строк с помощью dropwhile()
  4. Работа с итераторами в Python
  5. EMOT преобразование эмодзи в текст
  6. Метод clear для коллекций
  7. Метод __complex__ в Python
  8. Управление асинхронными задачами с помощью Semaphore
  9. Docstring в Python
  10. Обработка ошибок в JSON данных
  11. Работа с изображениями Pillow
  12. Поиск всех индексов подстроки
  13. Запуск Python из интерпретатора
  14. Проверка ввода с помощью isdigit
  15. Транспонирование 2D-массива с помощью zip
  16. Оператор in для Python
  17. Работа с Enum в Python3.
  18. Выражения-генераторы в Python
  19. Избегайте ошибку FileNotFoundError
  20. Синхронизация доступа к ресурсам
  21. Преобразование списка в словарь через генератор
  22. Красивый вывод списка
  23. Встраивание HTML в Jupyter Notebook
  24. Метод remove() для удаления элемента из списка
  25. Модуль pprint
  26. Сравнение объектов в Python
  27. Фильтрация данных в Python.
  28. Замена текста с re.sub()
  29. Функция format() в Python
  30. Поиск самого частого элемента
  31. Генераторы в Python
  32. Декоратор защиты анонимных пользователей
  33. Метод __float__ в Python
  34. Работа с множествами в Python
  35. Декораторы в Python
  36. Логирование с Logzero
  37. Проверка кортежей.
  38. Метод classmethod
  39. Метод rsub в Python: расширение функциональности вычитания
  40. Методы обработки строк в Python
  41. Обработка ошибок в Python
  42. Переопределение метода __or__()
  43. Отладка утечек памяти в Python
  44. Функциональное программирование в Python

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