Курс 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. Работа с *args и **kwargs в Python
  2. Оператор объединения словарей
  3. Возврат значений из генератора
  4. Метод __index__ в Python
  5. Проекты на Python
  6. Функция pow() — возвести число в степень
  7. Измерение времени выполнения с помощью time
  8. Множественные конструкторы в Python
  9. Асинхронный код в Python
  10. Функции в одну строку
  11. Импорт и использование модулей в Python
  12. Команда %dhist — список посещенных каталогов
  13. Поиск всех индексов подстроки
  14. Установка User-Agent в Python
  15. Передача неизвестных аргументов в Python.
  16. JMESPath в Python
  17. Оптимизация памяти с помощью __slots__
  18. Роль ключевого слова self
  19. Работа с deque в Python
  20. Объединение словарей в Python
  21. Регистрация на курсы SF Education
  22. Генерация резюме в Gensim
  23. Комментарии в Python
  24. Настройка нарезки списков
  25. Декоратор total_ordering для класса Point
  26. Основы работы со строками в Python
  27. Основы Python
  28. Defaultdict в Python
  29. Принципы Zen Python
  30. Нахождение отличий в списках
  31. Оператор распаковки в Python
  32. Функции all и any в Python
  33. Заказ карты Тинькофф Black
  34. Повторение элементов в Python
  35. Поиск подстроки в строке
  36. Удаление дубликатов из списка
  37. Метод clear для коллекций
  38. Роль запятой в Python
  39. Импорт модулей в Python 3.12
  40. Принципы SRP и OCP
  41. Переопределение метода sub
  42. Оператор == в Python
  43. Контекстный менеджер в Python
  44. Создание функций высшего порядка
  45. Оптимизация поиска в словарях
  46. Логирование с Logzero
  47. Списковый компрехеншен.

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