Курс 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. Модуль Antigravity в Python 3
  2. Открытие, чтение и закрытие файла
  3. Цикл while в Python
  4. Структура строк в Python
  5. Big O оптимизация
  6. Работа с zip-архивами в Python
  7. Создание файла с проверкой ошибки
  8. Оболочка Python
  9. Импорт модулей в Python 3.12
  10. Принципы Zen of Python
  11. Карта бомбоубежищ в Москве и Питере
  12. Отладка кода
  13. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  14. Поиск подстроки в строке
  15. Синхронизация доступа к ресурсам
  16. Структурирование данных с Pydantic
  17. Конкатенация строк с помощью join()
  18. Работа с библиотекой requests
  19. Вывод с переменной через запятую
  20. Метод join() для объединения элементов строки
  21. Декораторы в Python
  22. Сравнение строк в Python
  23. Оператор zip в Python
  24. Подсчет элементов в Python
  25. Функция all() в Python
  26. Обработка ошибок в Python
  27. Измерение времени выполнения кода
  28. Метод rpow в Python
  29. Хешируемые ключи в Python
  30. Логирование в Python
  31. Гибкие функции Python
  32. Поиск самого длинного слова в списке с использованием max()
  33. Функции map() и reduce() в Python
  34. Разрешение имен в Python
  35. Объединение списков в Python
  36. Модуль xkcd: добавление юмора в Python
  37. Протокол управления контекстом
  38. Хеши в Python
  39. Поиск частых элементов в списке
  40. Многопроцессорное программирование в Python
  41. Непрерывная проверка в Python
  42. Python Менеджер контекста
  43. Подсчет частотности элементов в Python
  44. Работа с изменяемыми списками

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