Курс 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. Функция enumerate() в Python
  2. Измерение времени выполнения кода
  3. Транспонирование матрицы
  4. Удаление файлов в Python
  5. Отрицательные индексы списков в Python
  6. Метод join() для объединения элементов строки
  7. Разделение строки с помощью re.split()
  8. Метод rrshift для пользовательских объектов
  9. Закрытие файла в Python
  10. Отношения подклассов в Python
  11. Генерация случайных чисел в Python
  12. Переопределение метода __pow__
  13. Работа с NumPy массивами
  14. Частичное совпадение ввода
  15. Создание треугольника Паскаля
  16. Добавление элементов в список: append() vs extend()
  17. Перевод двоичного кода в целое число
  18. Python Метод sleep() из time
  19. Логирование с Logzero
  20. Именованные кортежи в Python
  21. Создание тестовых данных с Faker
  22. Запуск асинхронной корутины
  23. Работа с файлами в Python
  24. Философия Python
  25. Профилирование кода на Python
  26. Кортеж в Python: создание и использование
  27. Декодирование строк в Python
  28. Курс по дообучению ChatGPT
  29. Переворот последовательности
  30. Удаление элементов из списка в Python.
  31. Создание инструмента обнаружения плагиата
  32. Работа с файлами в Python
  33. Удаление первого элемента списка
  34. Поиск самого частого элемента
  35. Работа с файлами в Python
  36. Тип данных TypeVarTuple
  37. Подписка на @SelectelNews
  38. Функции min(), max(), sum()
  39. Разрешение имен в Python
  40. Выражения-генераторы в Python
  41. Поиск повторов в списке
  42. Метод repr() в Python

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