Курс 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. Импорт и использование модулей в Python
  2. Прокачанный трейсинг ошибок
  3. Манипуляция формой массива в Numpy
  4. Логирование с Logzero
  5. Методы в Python
  6. Статическая типизация в Python
  7. Лямбда-функции в Python
  8. Python: отсутствие точек с запятыми
  9. Изменяемые и неизменяемые объекты
  10. Метод get для словаря
  11. Функция map() и ленивая оценка
  12. Просмотр внешних файлов в %pycat
  13. Вычисление времени выполнения
  14. Дефолтные параметры в Python
  15. Переопределение метода xor в Python
  16. Преобразование списка в словарь через генератор
  17. Сравнение строк в Python
  18. Удаление falsy-значений из списка с помощью filter
  19. Переворот последовательности
  20. TON Smart Challenge #2: участие и подготовка
  21. Работа с NumPy
  22. Работа с CSV в Python
  23. Итерации в Python
  24. Выбор редактора кода.
  25. Список переменных с %who
  26. Присоединение элементов коллекции
  27. Доступ к локальным переменным
  28. Красивый вывод списка
  29. Шаблоны и наследование в Flask
  30. Вывод переменной и строки в Python
  31. Область видимости переменных
  32. Перевод двоичного кода в целое число
  33. Colorama: окрашивание текста в Python
  34. Метод join() для объединения элементов строки
  35. Проверка версии Python
  36. Определение индекса элемента списка
  37. capitalize() — изменение регистра первого символа строки
  38. Тестирование времени с Freezegun
  39. Оптимизация памяти с __slots__
  40. Работа с многоуровневыми словарями в Python
  41. Метод split() в Python
  42. Проверка файла .py на синтаксис.

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