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

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

Использование перегрузки операторов делает ваш код более читаемым и понятным, так как вы можете использовать стандартные операторы для работы с вашими объектами, как если бы они были встроенными типами данных. Например, вы можете сложить два объекта вашего класса, используя оператор +, вместо вызова специального метода add() или другого аналогичного метода.

Пример использования перегрузки операторов в Python:


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(1, 2)
v2 = Vector(3, 4)
v3 = v1 + v2
print(v3.x, v3.y)  # Выведет: 4, 6

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

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

Автор урока

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

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

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

  1. Создание обратного итератора
  2. Создание пустых функций и классов в Python
  3. Оптимизация интернирования строк
  4. Ускоренный импорт библиотек
  5. Метод rrshift для пользовательских объектов
  6. Функция format() в Python
  7. Печать списка с помощью метода join
  8. Работа со временем в Python
  9. Работа с областями видимости переменных
  10. Метод splitlines() для разделения строк
  11. Переопределение метода delitem в Python
  12. Сортировка в Python
  13. Необязательные аргументы в Python
  14. Подсчет элементов с помощью Counter
  15. Обработка StopIteration в Python
  16. *args и **kwargs в Python
  17. Атрибуты объекта в Python
  18. Атрибуты массивов в Numpy
  19. Проверка условий в Python
  20. Преобразование кортежа в словарь.
  21. Оптимизация строк в Python
  22. Конкатенация строковых литералов
  23. Замер времени выполнения кода
  24. Фильтрация входных данных в Python
  25. Класс UserDict: дополнительная функциональность
  26. Описание скриптов в README
  27. Измерение времени выполнения кода в Python
  28. Python: отличительная особенность — отступы
  29. Операторы += в Python
  30. Значения по умолчанию в Python
  31. Декораторы с аргументами
  32. Блок else в Python
  33. Кортежи в Python: особенности и преимущества
  34. PATCH-запрос с библиотекой requests
  35. Измерение времени выполнения кода
  36. Метод ipow для возведения в степень
  37. Работа с рекламными данными в Pandas
  38. Структурирование данных с Pydantic
  39. Python: динамическая типизация и проверка типов
  40. Декораторы в Python
  41. Карта бомбоубежищ в Москве и Питере
  42. Операции со строками в Python
  43. Комментарии в Python
  44. Аннотации типов в Python
  45. Возвращение нескольких значений через кортеж или класс
  46. Открытие и редактирование скриптов Python
  47. Функция print() — вывод информации

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