Курс 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. Работа с областями видимости переменных
  2. lru_cache оптимизация функций
  3. Класс Counter() для подсчета элементов
  4. Объявление переменных в Python
  5. Непрерывная проверка в Python
  6. Метод округления чисел
  7. Обработка исключений в Python 3
  8. Основы работы с os
  9. Конкатенация строк в Python
  10. Перевод эмодзи и эмотиконов.
  11. Объединение объектов в Python
  12. Хеширование паролей с солью
  13. Итераторы с потерямиZIP
  14. Работа с Event() в threading
  15. Операции со строками в Python
  16. Библиотека Rich: форматирование текста
  17. capitalize() — изменение регистра первого символа строки
  18. Работа с deque в Python
  19. Работа с модулем os в Python
  20. Многоточие в Python
  21. Создание таблиц в Python с PrettyTable
  22. Создание списка через итерацию
  23. Работа с CSV в Python
  24. Генераторы и сеты в Python
  25. Функции с дополнением
  26. Работа со строками в Python
  27. Синтаксис переменных цикла в Python
  28. Итераторы в Python
  29. Создание коллекций из выражения-генератора
  30. Замена текста в Python
  31. Оператор обр. импликации
  32. Инверсия списка/строки в Python
  33. Частичное совпадение пользовательского ввода в Python 3.10
  34. Экспорт данных с помощью writefile
  35. Удаление ключа из словаря в Python
  36. Ускоренный импорт библиотек
  37. split() — разделение строки
  38. Официальный канал Python в Telegram
  39. Удаление falsy-значений из списка с помощью filter
  40. Шаблоны Flask: условия и циклы
  41. Методы __repr__ и __str__ в Python
  42. Оценка выражений генератора в Python
  43. Список методов и атрибутов
  44. Создание и удаление объектов
  45. Печать комбинаций в Python с Itertools

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