Курс 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. Flask: создание веб-приложений
  3. Объединение списков в Python
  4. Сортировка списка по индексам
  5. Работа с комплексными числами в Python
  6. Методы list в Python
  7. Обязательные аргументы в Python
  8. Работа с YAML в Python: PyYAML.
  9. Управление IP-адресами через прокси
  10. Классы данных в Python
  11. Команда %dhist — список посещенных каталогов
  12. Упрощенный вывод данных в Python
  13. Работа с эмодзи в Python
  14. Генераторы списков в Python
  15. Оператор «not» в Python
  16. OrderedDict — упорядоченный словарь
  17. Python: изменяемые и неизменяемые коллекции
  18. Использование эмодзи в Python
  19. Управление контекстом выполнения
  20. Резервирование символов в Python
  21. Enum в Python
  22. Генерация QR-кодов с библиотекой qrcode
  23. Логирование в Python
  24. Комплексные числа в Python
  25. Генераторы по генератору
  26. Удаление файлов и папок в Python
  27. Генерация UUID в Python
  28. Разделение строк в Python
  29. Игра «Камень, ножницы, бумага» — Python
  30. Retrying в Python: повторные вызовы
  31. Объединение словарей в Python
  32. Flask — веб-фреймворк Python
  33. Многопроцессорное программирование в Python
  34. Модуль itertools: эффективная работа с итераторами
  35. Принципы программирования
  36. Создание графики с черепахой
  37. Область видимости переменных в Python
  38. Функция eval() в Python
  39. Импорт с альтернативным именем
  40. Объединение объектов в Python
  41. Замена текста с re.sub()
  42. Создание копии списка в Python
  43. Расширение операции побитового «и» в Python
  44. Группировка элементов Python
  45. HTTP-запросы с библиотекой Requests

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