Курс 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. Метод __iand__ для пользовательских классов
  2. Конвертация коллекций в Python
  3. Оператор «or» в Python
  4. Создание виртуальной среды
  5. Функции с необязательными аргументами
  6. Импорт классов из другого файла
  7. Метод ifloordiv для пользовательских классов
  8. Отладка в Python
  9. Сравнение def и lambda в Python
  10. Оператор in для проверки наличия элемента
  11. Enum в Python: создание и использование перечислений
  12. Замена текста с re.sub()
  13. Распаковка с оператором *
  14. Создание словаря с значением по умолчанию
  15. Отступы в Python
  16. Проверка вхождения подстроки
  17. Итераторы в Python
  18. Метод get() для словарей
  19. Управление сессиями в Python
  20. Оператор морж в Python 3.8
  21. Поиск индекса элемента
  22. Структура данных словарь в Python
  23. Возврат нескольких значений
  24. Безопасный доступ к значениям словаря
  25. Форматирование строк с f-строками
  26. Python Поверхностное Копирование
  27. Реализация операции -= для пользовательского класса
  28. Хранение переменных в Python.
  29. Искажение имен в Python
  30. Работа с SQLite в Python
  31. Возвращение нескольких значений
  32. Синхронизация потоков с time.sleep()
  33. Работа с комбинациями в Python.
  34. Объединение словарей в Python 3.5+
  35. Наследование в программировании
  36. Добавление элемента к кортежу
  37. Представление бесконечности в Python
  38. Обработка исключений в Python
  39. Экспорт данных в файл.
  40. Сохранение и загрузка модели в PyTorch
  41. Сортировка в Python
  42. Избегайте двойного подчеркивания
  43. Генератор данных в Keras
  44. Операторы сравнения в Python
  45. Генераторы в Python
  46. Howdoi — получение ответов из терминала
  47. Доступ к локальным переменным

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