Курс 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. Использование defaultdict в Python
  3. Управление браузером с Selenium
  4. Работа с комплексными числами
  5. Генераторы в Python
  6. Считывание бинарного файла в Python
  7. Оператор += в Python
  8. Инверсия списка и строки
  9. Списковое включение в Python
  10. Настройка нарезки списков
  11. Профилирование с Pandas
  12. Импорт объектов из модулей
  13. enumerate() в Python для работы с индексами
  14. Defaultdict в Python
  15. Измерение времени выполнения кода
  16. Работа со словарями с defaultdict из collections
  17. Сортировка и обратный порядок
  18. Отладка регулярных выражений в Python
  19. Тип CodeType в Python.
  20. Замыкания в Python
  21. Создание генераторов в Python
  22. ChainMap.new_child() — добавление нового словаря
  23. Переопределение метода len
  24. Разработка Telegram-ботов
  25. Обратный список чисел
  26. Проверка элементов списка условием
  27. Создание списка через итерацию
  28. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  29. Удаление ключа из словаря в Python
  30. Строки в Python: апострофы и кавычки
  31. Переопределение метода divmod
  32. Функции классификации комплексных чисел
  33. Работа с геоданными с помощью geopy
  34. Список переменных в Python
  35. Распаковка с оператором *
  36. Многоточие в Python
  37. Исключение NotImplementedError
  38. Поиск всех индексов подстроки
  39. Python и Монти Пайтон
  40. Модуль subprocess: запуск внешних команд
  41. Функции-генераторы в Python
  42. Именованные срезы в Python
  43. Оператор is в Python
  44. Поиск шаблона в строке
  45. Работа со строками в Python.
  46. Конкатенация строк с join() в Python
  47. Объединение словарей в Python
  48. JMESPath в Python

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