Курс 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. Модуль os: работа с файлами и папками
  3. Оператор zip в Python
  4. Прокачанный трейсинг ошибок
  5. Профилирование кода на Python
  6. Обработка исключений в Python
  7. Генераторы списков
  8. Оператор «and» в Python
  9. Работа со случайными элементами
  10. Работа с изменяемыми списками
  11. Ветвление выражения в Python
  12. Абстракции словарей и множеств в Python
  13. Запуск внешнего кода в Jupyter
  14. Python enumerate() функции
  15. Манипуляция формой массива в Numpy
  16. Проверка на палиндром
  17. Создание словарей и множеств в Python
  18. Отслеживание прогресса с tqdm
  19. Подробная информация о %pinfo
  20. Работа с кортежами в Python
  21. Поиск всех индексов подстроки
  22. Работа со строками
  23. Функции min(), max(), sum()
  24. Объединение словарей в Python
  25. Основные операции с библиотекой Numpy
  26. Работа с timedelta
  27. Передача аргументов в Python
  28. Добавление элементов в список
  29. Библиотека Rich: форматирование текста
  30. Запрос пароля с помощью getpass
  31. Операторы сравнения в Python
  32. Метод bool() в Python
  33. Python Тесты и Гайды
  34. Генерация тестовых данных с factory_boy
  35. Печать в одной строке
  36. Генераторы данных
  37. Поиск простых чисел
  38. Использование модуля math
  39. Разделение строки с помощью re.split()
  40. Numpy: разбиение массивов
  41. Тип данных TypeVarTuple
  42. Оптимизация гиперпараметров в Python
  43. Сортировка данных в Python
  44. Реализация операции -= для пользовательского класса
  45. Оператор «is not» в Python
  46. Установка пакета в Python
  47. Генераторы в Python

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