Курс 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. Оператор is в Python
  2. Использование функции product
  3. Анализ кода — Python
  4. Логирование с Logzero
  5. Разделение строки на подстроки в Python
  6. Конвертация текстовых чисел с помощью Numerizer
  7. HTTP-запросы с библиотекой Requests
  8. Генераторные функции в Python
  9. Установка Python — Простое руководство
  10. Mad Libs Generator
  11. Метод rsub для пользовательских чисел
  12. Конструктор в Python
  13. Основы работы со списками
  14. Операции с массивами в NumPy
  15. Работа с необработанными строками
  16. Defaultdict в Python
  17. Установка и использование pyshorteners
  18. Значения по умолчанию в Python
  19. Работа с датами в Python
  20. Генераторы в Python
  21. Создание виртуальной среды
  22. Разделение строк в Python
  23. Объединение словарей в Python
  24. Установка библиотек в Python
  25. Обработка элементов в Python
  26. Преобразование списков в словарь
  27. Метод add для класса Vector
  28. Операции с числами в Python
  29. Работа с индексами списков
  30. Метод сравнения объектов в Python
  31. Howdoi — получение ответов из терминала
  32. Concrete Paths в Python
  33. Объявление переменных в Python
  34. Область видимости переменных
  35. Принцип одной функции
  36. Проверка существования переменной с оператором :=
  37. Проверка вхождения подстроки
  38. Работа с PosixPath() в Python
  39. Генерация QR-кодов с Python
  40. Сортировка слиянием
  41. Нахождение хеша для бесконечности и NaN в Python
  42. Копирование объектов в Python
  43. Разделение строки на пары ключ-значение.
  44. Определение объема памяти объекта

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