Курс 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. Замена текста с помощью sub
  2. Работа с аргументами командной строки
  3. Асинхронный код в Python
  4. Метод invert для побитового отрицания
  5. Python Метод Union Множеств
  6. Создание задания в Cron
  7. Расчет времени выполнения кода
  8. Символ подчеркивания в Python
  9. Работа с JSON данными в Python
  10. Логирование в Python
  11. Генераторы в Python
  12. Проверка переменных окружения в Python
  13. Профилирование с Pandas
  14. Замыкания в Python
  15. Форматирование объектов с модулем pprint
  16. Метод rename() для переименования файлов и каталогов
  17. Инверсия списка/строки в Python
  18. Объединение объектов в Python
  19. Defaultdict в Python
  20. Метод hash в Python
  21. Объединение словарей в Python
  22. Декораторы в Python
  23. Копирование объектов в Python
  24. Поиск подстроки в строке
  25. Выборка чисел
  26. Метод Event.wait() в Python
  27. Определение основы слова с showballstemmer
  28. Функция map() и ленивая оценка
  29. Сохранение Unicode в JSON
  30. Извлечение новостей с помощью newspaper3k
  31. Работа с модулем bisect
  32. Работа с геоданными с помощью geopy
  33. Математические функции в Python
  34. Декоратор total_ordering для сравнения объектов
  35. Оптимизация параметров в Python
  36. Методы работы со строками в Python
  37. Красивый вывод списка
  38. Хранение переменных в Python.
  39. Установка виртуального окружения Python
  40. Обмен значений переменных в Python
  41. Метод join() для объединения элементов
  42. Списковое включение в Python
  43. Работа с атрибутом dict
  44. Python 3.12: Псевдонимы типов
  45. Обмен переменными в Jupyter
  46. Проверка файла .py на синтаксис.
  47. Реализация метода __abs__ в Python

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