Курс 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. Оператор in в Python
  2. Модуль inspect: получение информации о объектах
  3. Поиск наиболее частого элемента списке
  4. Избегайте использования goto
  5. Особенности ключей словаря в Python
  6. Подсчет элементов с помощью Counter
  7. Библиотека sh: использование команд bash в Python
  8. Обмен значений переменных в Python
  9. Срезы в Python
  10. Динамическая типизация в Python
  11. Списковый компрехеншен.
  12. Управление виртуальными окружениями в Python
  13. Блок else в обработке исключений
  14. Получение списка кортежей из словаря
  15. Метод index() в Python
  16. Отладка в Python
  17. Контроль точности вывода чисел
  18. Функция print() — вывод информации
  19. Получение ID текущего процесса
  20. Функциональное программирование.
  21. Приближение чисел в Python
  22. Разрешение имен в Python
  23. Работа с массивами в Python
  24. Модуль sys: основы
  25. Методы обработки строк в Python
  26. Запрос DELETE с библиотекой requests
  27. Удаление дубликатов из списка
  28. Очистка входных данных
  29. Многоточие в Python
  30. Возврат нескольких значений
  31. Сложные типы данных в Python
  32. Хранение данных
  33. Проверка элемента в множестве.
  34. Объединение списков в Python
  35. Оформление кода на Python
  36. Сортировка элементов с OrderedDict
  37. Математические функции в Python
  38. Проверка элементов списка условием
  39. Гибкие функции Python
  40. Преобразование Excel в PDF с Spire.XLS
  41. Работа с парами ключ-значение
  42. Конкатенация строк в Python
  43. Numpy: разбиение массивов

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