Курс 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. Переопределение метода __eq__
  3. Поиск индекса элемента в списке
  4. Явный импорт переменных
  5. Метод join() для объединения элементов строки
  6. Объединение кортежей в Python
  7. CSV строка разделение в Python
  8. Проверка индексов коллекции
  9. Функциональное программирование в Python
  10. Изменение элемента списка
  11. Удаление дубликатов из списка с помощью dict.fromkeys
  12. Многострочные комментарии в Python
  13. Тип данных TypeVarTuple
  14. Функция product() из itertools
  15. Управление контекстом выполнения кода
  16. Функциональное программирование.
  17. Перегрузка операторов в Python
  18. Участие в сообществе @selectel
  19. Проверка кортежей.
  20. Протокол управления контекстом
  21. Основы работы со строками в Python
  22. Python itertools combinations() — группировка элементов
  23. Метод __ilshift__ для битового сдвига влево
  24. Строковое представление объектов
  25. Подсчет часто встречающихся элементов
  26. Установка и использование TensorFlow
  27. Инвертирование словаря
  28. Ветвление выражения в Python
  29. Особенности запятых в Python
  30. Особенности множеств в Python
  31. Преобразование многоуровневого словаря
  32. Методы split() и join() — Python строк.
  33. Обработка исключений
  34. Определение индекса элемента списка
  35. Работа с CSV файлами в Python
  36. Импорт модуля из другого каталога
  37. Ключевое слово global в Python
  38. Многострочные комментарии в Python
  39. Объединение строк с помощью метода join
  40. Сортировка и обратный порядок
  41. Использование defaultdict в Python
  42. Метод сравнения объектов в Python
  43. Удаление и повторная вставка ключа в OrderedDict

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