Курс 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. Псевдонимы в Python
  3. lru_cache оптимизация функций
  4. Шаблоны Flask: условия и циклы
  5. Работа со строками в Python
  6. Установка User-Agent в Python
  7. Отслеживание выполнения программы с библиотекой tqdm
  8. Сортировка в Python
  9. Преобразование типов данных в set comprehension
  10. Блок else в обработке исключений
  11. Управление контекстом выполнения кода
  12. Добавление элемента в список.
  13. Сортировка в Python
  14. *args и **kwargs в Python
  15. Подсказки при вводе данных в Python
  16. Генераторы списков
  17. Модуль sys: основы
  18. Объединение строк с помощью метода join
  19. Преобразование данных в Python
  20. Декоратор Property в Python
  21. Измерение времени выполнения кода
  22. Управление контекстом с помощью декоратора contextmanager
  23. Создание списков в Python
  24. Удаление специальных символов
  25. Применение команды break
  26. Работа с URL-адресами в Python
  27. Безопасные SQL-запросы в Python 3.11
  28. Работа с процессами в Python
  29. Работа с f-строками 2.0
  30. Установка пакетов с помощью pip
  31. Разделение строки с регулярными выражениями
  32. Руководство по библиотеке pydantic
  33. Атрибуты объекта в Python
  34. Структуры данных в Python
  35. Переворот списка в Python
  36. Многострочные комментарии в Python
  37. Транспонирование 2D-массива с помощью zip
  38. Работа с Colorama
  39. Работа с GitHub в Telegram
  40. F-строки в Python 3.8
  41. Метод splitlines() для разделения строк
  42. Сортировка и разворот списка
  43. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  44. Проверка вхождения подстроки
  45. Удаление элементов из списка

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