Курс 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. Метод __ixor__ для побитового исключающего ИЛИ
  2. Проверка однородности элементов списка
  3. Расчет времени выполнения
  4. Классы данных в Python
  5. Принципы Zen Python
  6. Работа с массивами в Numpy
  7. Удаление элементов по срезу
  8. Именованные срезы в Python
  9. Сравнение строк в Python
  10. Передача неизвестных аргументов в Python.
  11. Применение функции map() с лямбда-функциями
  12. Компиляция регулярных выражений
  13. Оператор break в Python
  14. Списки: объединение, изменение
  15. Ветвление выражения в Python
  16. Частичное совпадение ввода
  17. Сериализация и десериализация объектов
  18. Функция reversed() в Python
  19. discard() — удаление элемента из множества
  20. Аннотации типов в Python
  21. Декоратор для группы пользователей в Django
  22. Создание новых функций через partial
  23. Декоратор защиты анонимных пользователей
  24. Хеширование паролей с использованием salt
  25. Создание итерируемых объектов
  26. Удаление ресурса в Python
  27. Основы работы со списками
  28. Философия Python
  29. Множественное присваивание в Python
  30. Оператор continue в Python
  31. Создание .exe файла с pyinstaller
  32. Форматирование строк с помощью f-строк
  33. Импорт модулей и пакетов в Python
  34. Комментарии в Python
  35. Изменение списка срезами
  36. Вывод переменной и строки в Python
  37. Экспорт функций в Python
  38. Оптимизация сравнения в Python
  39. Получение частей дроби
  40. Преобразование PowerPoint в PDF.
  41. Генераторы в Python
  42. Возвращение нескольких значений через кортеж или класс
  43. PrettyTable: создание таблицы
  44. Работа с словарями в Python
  45. Именование переменных в Python
  46. Создание файла с проверкой ошибки

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