Курс 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. Обработка исключений
  3. Структурирование именованных констант
  4. Метод count в Python: почему count(», ») возвращает 4?
  5. Python: отсутствие точек с запятыми
  6. Передача аргументов в Python
  7. Вывод букв строки в Python
  8. Обработка ошибок в Python
  9. Обработка исключений в Python
  10. Проверка подстроки в строке
  11. Поиск простых чисел
  12. Фильтрация последовательности
  13. Генераторы в Python
  14. Поиск индекса элемента в списке
  15. Удаление элемента из списка в Python
  16. Работа с набором данных CIFAR10 в PyTorch
  17. Создание класса в Python
  18. Обход словаря в Python
  19. Форматирование строк в Python.
  20. Таймер обратного отсчета
  21. Замена переменных в Python
  22. Установка и использование модуля «howdoi»
  23. Срезы в Numpy
  24. Преобразование кортежа в словарь.
  25. Переворот списка в Python
  26. Создание словарей и множеств в Python
  27. Атрибуты класса и экземпляра
  28. Подсказки типов в Python
  29. Тернарный оператор в Python
  30. Управление IP-адресами через прокси
  31. Многоточие в Python
  32. Оценка точности модели
  33. Декоратор @override
  34. Работа с парами ключ-значение
  35. Атрибуты объекта в Python
  36. Работа с YAML в Python
  37. Декоратор total_ordering для сравнения объектов
  38. Показ всплывающих окон Tkinter
  39. Каналы Senior: Python, Java, Frontend, SQL, C++
  40. Python: цикл for и оператор присваивания
  41. Отрицательные индексы списков
  42. Атрибуты массивов в Numpy
  43. Символ подчеркивания в Python
  44. Работа с прокси в Python
  45. Замыкания в Python
  46. Копирование объектов в Python
  47. Управление доступом к модулю

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