Курс 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. Атрибуты массивов в Numpy
  2. Работа с Requests для HTTP-запросов
  3. Проверка класса объекта
  4. JMESPath в Python
  5. Сложение матриц в NumPy
  6. Создание .exe файла с pyinstaller
  7. Работа с пакетами
  8. Сортировка и разворот списка
  9. Замена текста с re.sub()
  10. Оформление кода по PEP 8
  11. Копирование файлов с shutil()
  12. Отладчик pdb: начало работы
  13. Лямбда-функции в Python
  14. inspect в Python: анализ кода
  15. Создание и инициализация объектов
  16. Оптимизация памяти с помощью __slots__
  17. Обход словаря в Python
  18. Имена объектов в Python
  19. Преобразование данных в Python
  20. Операции с массивами в NumPy
  21. Разделение строки на подстроки в Python
  22. Добавление элементов в список: append() vs extend()
  23. Генераторы в Python
  24. Визуализация пропусков данных
  25. Обработка исключений в Python
  26. Flask: создание веб-приложений
  27. Метод Enumerate() для списков
  28. Генерация фальшивых данных с Faker
  29. Проверка подстроки в строке с помощью in
  30. Работа с переменными в Python
  31. Копирование словарей и списков в Python
  32. Подсчет частотности элементов в Python
  33. Расчет времени выполнения программы
  34. Проверка однородности элементов списка
  35. Применение функции к списку
  36. Функция zip() в Python
  37. Перевод эмодзи и эмотиконов.
  38. Методы работы со списками
  39. Извлечение новостей с помощью newspaper3k
  40. Цикл for с enumerate() в Python
  41. Функция print() — вывод информации
  42. Создание инструмента обнаружения плагиата
  43. Деление в Python
  44. Комментарии в Python
  45. Функции классификации комплексных чисел
  46. Округление банкира в Python
  47. Обезопасьте ввод данных
  48. Поиск всех индексов подстроки

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