Курс 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. Обработка ошибок в Python
  2. Конкатенация строк с помощью join()
  3. Создание функций высшего порядка
  4. Метод join() для объединения элементов в строку.
  5. Декоратор для группы пользователей в Django
  6. Управление асинхронными задачами с помощью Semaphore
  7. Автоматизация скриптов на AWS Lightsail.
  8. Лямбда-функции в defaultdict
  9. Копирование в Python
  10. Работа с очередями в Python
  11. Уникальность ключей в словаре
  12. Различия символов в Python
  13. Создание виртуальной среды
  14. Обновление и получение данных в SQLite
  15. Сортировка элементов с OrderedDict
  16. Структуры данных в Python
  17. Оформление кода на Python
  18. Списковый компрехеншен.
  19. Описание скриптов в README
  20. Применение функции к списку
  21. Операция += для списков
  22. Конкатенация списков в Python
  23. Создание объекта времени
  24. Обработка ошибок ввода данных
  25. Многострочные комментарии в Python
  26. Создание класса очереди
  27. Проверка типов с использованием isinstance
  28. Фильтрация последовательности
  29. Beautiful Soup — извлечение данных из HTML
  30. Поиск анаграмм с Counter
  31. Управление контекстом с помощью декоратора contextmanager
  32. Работа с файлами в Python
  33. Метод join() для объединения строк
  34. Оператор морж в Python 3.8
  35. Потоковый ввод в Python
  36. Форматирование данных с pprint
  37. Измерение потребления памяти при сортировке
  38. Форматирование данных с помощью pprint
  39. Основы слова
  40. Проблема с изменяемыми аргументами
  41. Python union() функция — объединение множеств
  42. Оболочка Python
  43. Работа с timedelta в Python
  44. Типы возвращаемых значений в Python
  45. Python Enum Weekday Usage
  46. Преобразование в float

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