Курс 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. Установка Git и AWS CLI
  3. Удаление элементов во время итерации
  4. Метод append() для списка
  5. Numpy: использование Ellipsis
  6. Создание словаря в Python
  7. Введение в Python
  8. Работа с модулем random
  9. Установка User-Agent в Python
  10. Извлечение новостей с newspaper3k
  11. Заказ карты Тинькофф Black
  12. Установка и использование модуля Wikipedia
  13. Порядок операций в Python
  14. Получение срезов итераторов
  15. Concrete Paths в Python
  16. Изменение IP-адреса в Python
  17. Округление в Python
  18. Форматирование вывода списков
  19. Парсинг веб-страниц с Beautiful Soup
  20. Поиск с библиотекой Google
  21. Проверка файла .py на синтаксис.
  22. Применение функций в Python
  23. Преобразование текста в речь с Python
  24. Функции высшего порядка в Python
  25. Конкатенация списков в Python
  26. Оператор assert в Python
  27. Встроенные функции Python
  28. Бесконечные списки в Python
  29. Обновление и получение данных в SQLite
  30. Работа с файлами в Python
  31. Измерение времени выполнения кода с помощью time
  32. Измерение времени выполнения кода в Python
  33. Вычисление разности множеств в Python
  34. Функция enumerate в Python
  35. Освобождение памяти в Python
  36. Реверс строки и списка в Python.
  37. Создание и инициализация объектов
  38. Основы работы со строками в Python
  39. Парсинг статей с Newspaper3k
  40. Python reversed() функция
  41. Объединение словарей в Python
  42. Метод __irshift__ для Python
  43. Numpy: разбиение массивов

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