Курс 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. Запрос пароля с помощью getpass
  2. Работа с collections в Python.
  3. Работа с файлами в Python
  4. discard() — удаление элемента из множества
  5. Метод count() для списка
  6. Работа с изменяемыми коллекциями
  7. Генератор надежных паролей
  8. Статическая типизация в Python
  9. Итерация по коллекции в Python
  10. Вакансии в Nebius
  11. Принципы LSP и ISP в Python
  12. Замена текста с помощью sub
  13. Дефолтные параметры в Python
  14. Операции с числами в Python
  15. Уникальные значения из списка
  16. F-строки в Python 3.8
  17. Кортеж в Python: создание, доступ, изменение
  18. Подсчет элементов в списке с Counter
  19. Модуль antigravity: генерация координат
  20. Преобразование документов в PDF с помощью Spire.Office
  21. Получение идентификатора объекта в памяти
  22. Реализация метода __abs__ в Python
  23. TON Smart Challenge #2: участие и подготовка
  24. inspect в Python: анализ кода
  25. Область видимости переменных в Python
  26. Модуль itertools: комбинации и перестановки
  27. Таймер обратного отсчета
  28. Генерация случайных чисел в Python
  29. Перехват исключений в Python
  30. Методы shutil для работы с файлами
  31. Методы в Python
  32. Работа с CSV файлами в Python
  33. Поиск простых чисел
  34. Mad Libs Generator
  35. Подсчет элементов с помощью Counter из collections
  36. Вычисление фазы комплексного числа
  37. Быстрый поиск кода
  38. Создание и удаление объектов
  39. globals и locals
  40. Метод Enumerate() для списков
  41. Управление пакетами с pip
  42. Распаковка с оператором *
  43. Деление в Python
  44. Псевдонимы в Python
  45. Профилирование с Pandas
  46. Структуры данных в Python
  47. Работа с Requests для HTTP-запросов
  48. Установка Python — Простое руководство

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