Курс 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. Улучшение читаемости кода в Python
  3. Функция pow() — возвести число в степень
  4. Добавление элемента к кортежу
  5. Определение локальных переменных в Python
  6. Определение имен функций
  7. Генераторные выражения и islice.
  8. Преобразование объекта в строку
  9. Работа с WindowsPath()
  10. Протокол управления контекстом
  11. Удаление файлов и папок в Python
  12. Многострочные строки в Python
  13. Переопределение метода len
  14. Метод ne для сравнения объектов
  15. Избегайте пустого списка
  16. Создание детектора плагиата
  17. Создание лямбда-функций
  18. Отладка регулярных выражений в Python
  19. Конкатенация строк с методом join()
  20. Отрицательные индексы списков
  21. Работа с массивами в Python
  22. Метод округления чисел
  23. split() — разделение строки
  24. Магические методы в Python
  25. Получение ID текущего процесса
  26. Методы shutil для работы с файлами
  27. Ограничение итераций в Python
  28. Декоратор total_ordering для класса Point
  29. Python union() функция — объединение множеств
  30. Контроль точности вывода чисел
  31. Преобразование списка в словарь через генератор
  32. Импортирование в Python
  33. Каналы Senior: Python, Java, Frontend, SQL, C++
  34. Работа с файлами и директориями в Python.
  35. Генераторы в Python
  36. Списковое включение в Python
  37. Добавление элементов в список
  38. Форматирование данных с помощью pprint
  39. Поиск самого длинного слова в списке с использованием max()
  40. Работа с модулем glob в Python
  41. Работа с кортежами в Python
  42. Объединение кортежей в Python
  43. Работа со словарями Python
  44. Python и Юникод: работа с цифрами
  45. Метод join() для объединения строк
  46. Функции классификации комплексных чисел
  47. Вывод переменной и строки в Python

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