Курс 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 Translator: создание локальных переводчиков
  3. Структурирование именованных констант
  4. Именованные срезы в Python
  5. Конкатенация строк с помощью join()
  6. Списковые включения в Python
  7. Метод difference_update() — разность множеств
  8. Поиск HTML-элементов с BeautifulSoup
  9. Перетасовка списков в Python
  10. Оператор морж в Python 3.8
  11. Метод bool() в Python
  12. Цикл for в Python
  13. Сравнение строк в Python
  14. Комментарии в Python.
  15. Функция zip() в Python
  16. Вычисление логарифмов в Python
  17. Профилирование данных с Pandas.
  18. Переопределение метода
  19. Разность множеств
  20. Резервирование символов в Python
  21. Операции с кортежами
  22. Функции map() и reduce() в Python
  23. Работа с контекстными переменными
  24. Управление памятью в numpy.
  25. Добавление элементов в список
  26. Работа с CSV файлами в Python
  27. Округление в Python
  28. Функция zip() — объединение последовательностей
  29. Красивый вывод списка
  30. Модуль os: работа с файлами и папками
  31. Методы list в Python
  32. Инициализация структур данных
  33. Возвращение нескольких значений через кортеж или класс
  34. Переменные класса и экземпляра
  35. Метод __call__ в Python
  36. Работа с CSV файлами в Python
  37. Объединение словарей в Python
  38. Оптимизация памяти с __slots__
  39. Метод __iand__ для пользовательских классов
  40. Конкатенация строк в Python

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