Курс 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. Удаление ключей из словаря
  2. Замер времени выполнения кода
  3. Работа с IP-адресами в Python
  4. Работа с географическими данными.
  5. Стать Python-разработчиком
  6. Enum в Python: создание и использование перечислений
  7. Работа с getopt
  8. Обезопасьте ввод данных
  9. Особенности множеств в Python
  10. Декораторы в Python
  11. Кортеж в Python: создание и использование
  12. Работа с множествами в Python
  13. Профилирование данных с Pandas.
  14. Работа с библиотекой requests
  15. Игра «Угадывание чисел»
  16. Множественное присваивание в Python
  17. Операторы увеличения и уменьшения в Python
  18. Нахождение разницы между списками в Python
  19. Преобразование символов в нижний регистр
  20. Метод difference_update() — разность множеств
  21. Конкатенация строк в Python
  22. Работа с библиотекой xkcd
  23. Работа с изображениями Pillow
  24. Метод setdefault() в Python
  25. Эффективная конкатенация строк с использованием join()
  26. Numpy: разбиение массивов
  27. Нахождение самого длинного слова в списке с помощью max
  28. Подписка на Kaspersky Team
  29. Базовые объекты Python
  30. Ветвление выражения в Python
  31. Генерация случайных данных в NumPy
  32. Создание и удаление объектов
  33. Python Ellipsis использование
  34. Метод rxor для операции побитового исключающего «или»
  35. Замыкания в Python
  36. Работа с индексами списков
  37. Метод join() для объединения элементов в строку.
  38. Псевдонимы в Python
  39. Ограничение ресурсов в Python
  40. Выключение компьютера с помощью Python
  41. Синхронизация потоков с time.sleep()
  42. Вывод символов строки в Python
  43. Динамические маршруты во Flask

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