Курс 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. Управление ресурсами в Python
  3. Работа с индексами списков
  4. Извлечение аудио из видео
  5. Основные операции с библиотекой Numpy
  6. Создание таблиц в Python с PrettyTable
  7. Генераторы в Python
  8. Метод rmatmul для пользовательских матриц
  9. Сохранение Unicode в JSON
  10. Поиск частого элемента
  11. Удаление файлов в Python
  12. Форматирование строк с f-строками
  13. Форматирование данных с помощью pprint
  14. Проблемы с именами переменных
  15. Сохранение и загрузка модели в PyTorch
  16. Получение частей дроби
  17. Проверка надежности пароля на Python
  18. Отображение графиков в Jupyter с Matplotlib
  19. Генерация QR-кодов с библиотекой qrcode
  20. Функции в одну строку
  21. Форматирование строк в Python
  22. Метод join() для объединения элементов строки
  23. Получение идентификатора объекта в памяти
  24. Создание списка дат
  25. Сортировка с помощью key
  26. Структуры данных в Python
  27. Реверс строки и списка в Python.
  28. Бесконечные списки в Python
  29. Отправка POST-запроса в REST API
  30. Работа с YAML в Python
  31. Выражения-генераторы в Python
  32. Регистрация на TenChat
  33. Сравнение def и lambda функций в Python
  34. Python UserString — создание подклассов строк
  35. Оператор (*) в Python
  36. Python: Splat-оператор и splatty-splat
  37. Официальный канал Python в Telegram
  38. Форматирование даты с strftime()
  39. Просмотр файла в Jupyter Noteboo
  40. Измерение времени выполнения кода с помощью time
  41. Циклы в Python
  42. Назначение максимального и минимального значения переменной в Python.
  43. Бинарный поиск
  44. Декораторы в Python
  45. Списки в Python: основы

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