Курс 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. Функция all() в Python
  2. Работа с прокси в Python
  3. Создание объекта времени
  4. Метод join для объединения строк
  5. Исключение NotImplementedError
  6. Извлечение аудио из видео
  7. Работа со случайными элементами
  8. Контроль точности вывода чисел
  9. Непрерывная проверка в Python
  10. EMOT преобразование эмодзи в текст
  11. Оператор == в Python
  12. Lambda-функция в Python: использование с map() и sum()
  13. Вывод символов строки в Python
  14. Объединение списков в Python
  15. Запуск внешних программ с subprocess
  16. Получение ID текущего процесса
  17. Работа с часовыми поясами в Python.
  18. Python: отличительная особенность — отступы
  19. Функции с дополнением
  20. Применение функции к каждому элементу списка
  21. Транспонирование 2D-массива с помощью zip
  22. Транспонирование 2D-массива с помощью zip
  23. Асинхронное выполнение задач в процессах
  24. Работа с комплексными числами
  25. Объединение словарей в Python
  26. Реверс строки в Python
  27. Переопределение метода __floordiv__
  28. Область видимости переменных
  29. Область видимости переменных в Python
  30. Обучение модели с указанием эпох
  31. Генераторы списков в Python
  32. Копирование списков в Python
  33. Преобразование генераторов в циклы
  34. Получение списка кортежей из словаря
  35. Проверка окончания строки с помощью str.endswith()
  36. Python: динамическая типизация и проверка типов
  37. Добавление кнопки в tkinter
  38. Объединение словарей в Python
  39. Синхронизация потоков с time.sleep()
  40. Игра «Виселица» на Python
  41. Отладка производительности Python
  42. Скачать видео с YouTube
  43. Названия столбцов в Python таблицах
  44. Извлечение чисел из текста
  45. Создание графиков в терминале
  46. Просмотр атрибутов и методов класса

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