Курс Python → Перегрузка операторов в Python

Перегрузка операторов в Python позволяет изменять поведение встроенных операторов таким образом, чтобы они могли работать с пользовательскими объектами. Это делает код более читаемым и удобным, так как позволяет использовать знакомые операторы для различных типов данных. Например, мы можем определить специальный метод __add__ для класса, который будет определять поведение оператора + для объектов этого класса.

Давайте рассмотрим пример с классом Vector, который представляет собой вектор в двумерном пространстве. Мы можем определить метод __add__ для этого класса, чтобы можно было складывать два вектора с помощью оператора +.


class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        
    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)
        
v1 = Vector(2, 3)
v2 = Vector(4, 5)
result = v1 + v2
print(result.x, result.y)  # Выведет: 6 8

В этом примере метод __add__ определен для класса Vector, который принимает второй вектор в качестве аргумента и возвращает новый вектор, представляющий собой сумму двух векторов. Теперь мы можем использовать оператор + для складывания объектов класса Vector.

Перегрузка операторов не ограничивается только арифметическими операторами. Мы также можем перегрузить операторы сравнения, индексации, присваивания и другие операторы. Это позволяет гибко работать с объектами различных типов и упрощает написание кода. Помните, что перегрузку операторов следует использовать разумно и в соответствии с общепринятыми стандартами.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Работа с аргументами командной строки
  2. Python: изменяемые и неизменяемые коллекции
  3. Фильтрация элементов с помощью islice
  4. Логические значения в Python
  5. Python: библиотеки и функции
  6. Поиск частого элемента
  7. Работа с кортежами в Python
  8. Генераторы в Python
  9. Определение функций с необязательными аргументами
  10. Добавление кнопки в tkinter
  11. Передача неизвестных аргументов в Python.
  12. Установка и использование модуля «howdoi»
  13. Поиск повторов в списке
  14. Печать списка с помощью метода join
  15. Ввод нескольких значений
  16. Управление мышью и клавиатурой с Pyautogui
  17. Сериализация объектов в Python
  18. Списковое включение в Python
  19. Методы __repr__ и __str__ в Python
  20. Генератор списка с условием if
  21. Проверка условий в Python
  22. Создание матрицы в Python
  23. Списковое включение в Python
  24. Передача аргументов через **arguments
  25. Функция rsplit() в Python
  26. Различия символов в Python
  27. Основы работы со списками
  28. Оптимизация памяти с __slots__
  29. Поиск уникальных и повторяющихся элементов
  30. Функция map() в Python
  31. Конкатенация строковых литералов
  32. Непрерывная проверка в Python
  33. Получение текущей директории
  34. Модуль os в Python: работа с файлами
  35. Вставка переменных в шаблоны Flask
  36. Работа с deque из collections
  37. Сохранение и загрузка модели в PyTorch
  38. Хеширование паролей с солью
  39. Модуль Operator в Python
  40. discard() — удаление элемента из множества
  41. Декодирование строк в Python
  42. Метод __imod__ для Python
  43. Библиотека schedule: планировщик задач

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