Курс 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. Регулярные выражения: метод match
  3. Определение наиболее частого элемента с помощью collections.Counter
  4. Проверка наличия элемента в списке
  5. Применение функции к списку
  6. Поиск индексов в списке
  7. Простой калькулятор Python
  8. Регистрация на хакатоне
  9. Измерение времени выполнения кода
  10. Создание функций с произвольным количеством аргументов
  11. Область видимости переменных
  12. Декораторы в Python
  13. Создание лямбда-функций
  14. Преобразование строки в число
  15. Раздувающийся словарь в Python
  16. Проверка запуска скрипта или импорта модуля
  17. Создание OrderedDict
  18. Python groupby() из itertools: работа с повторяющимися элементами
  19. Транспонирование матрицы в Python
  20. Копирование в Python
  21. Работа с множествами в Python
  22. Генераторы в Python
  23. Поиск повторов в списке
  24. Изменение логики работы с временем
  25. Создание словаря и множества
  26. Инициализация объекта
  27. Печать в одной строке
  28. Переменные в Python: сокращение гласных
  29. Область видимости переменных в Python
  30. Retrying в Python: повторные вызовы
  31. Улучшение читаемости кода в Python
  32. Генерация UUID в Python
  33. Синхронизация доступа к ресурсам
  34. Делегирование в Python
  35. Создание .exe файла с pyinstaller
  36. Создание словарей с defaultdict
  37. Протокол управления контекстом
  38. Операторы += в Python
  39. Получение пути к текущему скрипту с помощью os
  40. Создание уникального проекта
  41. Логирование с Loguru
  42. Закрытие файла в Python
  43. Обход словаря в Python
  44. UserString в Python
  45. Функции all и any в Python
  46. Классы данных в Python
  47. Методы работы со строками в Python

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