Курс 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. Закрытие файла в Python
  2. Создание namedtuple из словаря
  3. Проверка ввода с помощью isdigit
  4. Округление чисел с помощью round
  5. Асинхронное выполнение задач в Python
  6. Распаковка аргументов в Python
  7. Удаление ресурса в Python
  8. Хеширование паролей с солью
  9. Обход словаря в Python
  10. Форматирование строк в Python
  11. Создание списков в Python
  12. Цикл for в Python
  13. Метод __imod__ для Python
  14. Измерение времени выполнения кода
  15. split() — разделение строки
  16. Создание OrderedDict
  17. Замыкания в Python
  18. Работа с атрибутом dict
  19. Модуль itertools: комбинации и перестановки
  20. Форматирование данных с помощью pprint
  21. Делегирование в Python
  22. Обновление данных через PUT запрос
  23. Создание комплексных чисел
  24. Обход дочерних элементов BeautifulSoup
  25. Удаление элементов по срезу
  26. Объединение списков в строку
  27. Установка Python — Простое руководство
  28. Контекстный менеджер в Python
  29. Работа с контекст-менеджером «with»
  30. Генерация строк с .join()
  31. Изменение элемента списка
  32. Сортировка HTML по CSS-селектору
  33. Множественное присваивание в Python
  34. Экранирование символов в Python
  35. Извлечение данных из JSON
  36. Создание новых функций с помощью functools.partial
  37. Преобразование объекта в строку
  38. Оператор «моржа» (Walrus Operator)
  39. Метод join для объединения строк
  40. Lambda Functions in Python
  41. Управление мышью и клавиатурой с Pyautogui
  42. Игра «Виселица» на Python
  43. Создание класса в Python
  44. Цикл for с enumerate() в Python
  45. Удаление элемента по индексу
  46. Обработка исключений в Python

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