Курс 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. Создание новых списков
  3. Установка Python — Простое руководство
  4. Преобразование букв в нижний регистр
  5. Отслеживание прогресса с tqdm
  6. Генерация случайных чисел Python
  7. Открытие и редактирование скриптов Python
  8. Явный импорт переменных
  9. Частичное совпадение пользовательского ввода в Python 3.10
  10. Howdoi — получение ответов из терминала
  11. Сложение матриц в NumPy
  12. Поиск подстроки в строке
  13. Добавление Progressbar в Python
  14. Преобразование многоуровневого словаря
  15. Секреты Python
  16. Область видимости переменных в Python
  17. Удаление специальных символов
  18. Создание циклической ссылки
  19. Многопоточность в Python
  20. JMESPath в Python
  21. Основные методы NumPy
  22. Установка и использование модуля Wikipedia
  23. Структура строк в Python
  24. Изменение регистра данных
  25. Удаление символов новой строки в Python.
  26. Вычисление логарифмов в Python
  27. Создание словарей с defaultdict
  28. Проверка дубликатов в Python
  29. Переопределение метода divmod
  30. Работа с срезами в Python
  31. Построение графиков в терминале с bashplotlib
  32. Преобразование строк в числа с плавающей запятой
  33. Многострочные строки в Python
  34. Конвертация изображений в PDF
  35. Метод rlshift для битового сдвига
  36. Функция enumerate() в Python
  37. Методы работы со списками
  38. Метод matmul для умножения матриц
  39. Использование двоеточия в Python
  40. Работа с YAML в Python: PyYAML.
  41. Безопасный доступ к значениям словаря
  42. Операции с матрицами в Python
  43. Генерация чисел с range()
  44. Проверка строки на палиндром
  45. Оператор «and» в Python
  46. Многострочные комментарии в Python

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