Курс Python → Переопределение метода __floordiv__

При работе с комплексными числами или другими типами данных, где требуется операция целочисленного деления, можно воспользоваться лайфхаком, который позволяет переопределить метод __floordiv__. Это позволяет объекту поддерживать стандартную математическую операцию целочисленного деления в Python.

Для того чтобы переопределить метод __floordiv__, необходимо в классе определить этот метод. Например, если у нас есть класс ComplexNumber и мы хотим добавить поддержку целочисленного деления для объектов этого класса, мы можем определить метод __floordiv__ следующим образом:


class ComplexNumber:
    def __init__(self, real, imag):
        self.real = real
        self.imag = imag
        
    def __floordiv__(self, other):
        if isinstance(other, ComplexNumber):
            return ComplexNumber(self.real // other.real, self.imag // other.imag)
        else:
            return ComplexNumber(self.real // other, self.imag // other)

Теперь объекты класса ComplexNumber могут использовать операцию целочисленного деления. Например:


num1 = ComplexNumber(10, 5)
num2 = ComplexNumber(3, 2)

result = num1 // num2
print(result.real, result.imag)  # Output: 3 2

Таким образом, переопределение метода __floordiv__ позволяет объектам поддерживать операцию целочисленного деления в Python и упрощает работу с различными типами данных, где это может быть полезно.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Основные функции и модули Python
  2. Множественное наследование в Python
  3. Сравнение строк в Python
  4. Циклы в Python
  5. Вывод букв строки в Python
  6. Оператор «not» в Python
  7. Метод pos в Python
  8. Модуль math: основные функции
  9. Изменение элемента списка
  10. Локальные переменные.
  11. Импорт модулей в Python 3.12
  12. Многопоточность в Python
  13. Библиотека schedule: планировщик задач
  14. Управление пакетами с pip
  15. Метод rpow в Python
  16. Работа с словарями в Python
  17. Отправка поздравлений по дню рождения
  18. Значения по умолчанию в Python
  19. Тест скорости набора текста на Python
  20. Итерации в Python
  21. Таймер обратного отсчета
  22. Поиск элементов BeautifulSoup
  23. Создание задания в Cron
  24. Сортировка списка по индексам
  25. Подписка на @SelectelNews
  26. Ограничение ресурсов в Python
  27. Итерация по копии коллекции
  28. Сравнение строк в Python
  29. Применение функций в Python
  30. Управление User-Agent в Python
  31. Pillow: работа с изображениями
  32. Генератор бросков кубиков
  33. Аннотации типов в Python
  34. Поиск самого частого элемента
  35. Перезагрузка оператора в Python
  36. Python enumerate() для работы с индексами
  37. Обработка исключений в Python
  38. Работа с контекстными менеджерами
  39. Названия переменных
  40. Проверка условий в Python
  41. Применение функции к списку
  42. Создание уникального проекта
  43. Solidity для DeFi Ethereum
  44. Работа с набором данных CIFAR10 в PyTorch
  45. Итераторы с потерямиZIP
  46. Перевод эмодзи и эмотиконов.
  47. Магические методы в Python
  48. Конструктор в Python

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