Курс Python → Перезагрузка оператора в Python

Перезагрузка оператора в Python — это возможность определить свою собственную логику работы стандартных операторов для пользовательских объектов. Например, мы можем определить специальный метод __add__ для класса, который будет определять поведение при использовании оператора +. Это позволяет нам делать более интуитивные действия с нашими объектами и управлять их поведением.

Давайте рассмотрим простой пример. У нас есть класс Point, представляющий точку на плоскости с координатами x и y. Мы можем определить метод __add__, который будет складывать две точки вместе, возвращая новую точку с координатами, равными сумме соответствующих координат. Вот как это может выглядеть:


class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Point(self.x + other.x, self.y + other.y)

point1 = Point(1, 2)
point2 = Point(3, 4)
result = point1 + point2
print(result.x, result.y)

В этом примере мы определили класс Point с методом __add__, который позволяет складывать две точки вместе. При сложении двух точек создается новая точка с координатами, равными сумме координат соответствующих точек. Таким образом, мы можем использовать оператор + для сложения точек, что делает код более понятным и интуитивно понятным.

Перезагрузка операторов позволяет нам работать с объектами более естественным образом, делая код более читаемым и гибким. Мы можем определять свое собственное поведение для стандартных операторов и использовать его в своих классах. Это делает Python мощным инструментом для создания пользовательских типов данных и операций над ними.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Функции высшего порядка в Python
  2. Создание обратного итератора
  3. Очистка входных данных
  4. Фильтрация последовательности
  5. Форматирование строк в Python
  6. Печать комбинаций в Python с Itertools
  7. Встраивание HTML в Jupyter Notebook
  8. Функция enumerate в Python
  9. Отправка поздравлений по дню рождения
  10. Получение частей дроби
  11. Каналы Senior: Python, Java, Frontend, SQL, C++
  12. Работа с файлами в Python
  13. Экспорт функций в Python
  14. Моржовый оператор в Python 3.8
  15. Работа с WindowsPath()
  16. Многоточие в Python
  17. Определение относительного пути
  18. Оператор is в Python
  19. Сортировка с параметром key
  20. Работа с SQLite в Python
  21. Переопределение метода __or__()
  22. Делегирование в Python
  23. Проверка списка: any() и all()
  24. Создание словарей и множеств в Python.
  25. Динамическая типизация в Python
  26. Обратное распространение ошибки
  27. Вывод сложных структур данных с помощью pprint
  28. Аннотации типов в Python
  29. Условные выражения в Python
  30. Значения по умолчанию в Python
  31. Конкатенация списков в Python
  32. Имена объектов в Python
  33. Измерение времени выполнения кода
  34. Определение локальных переменных в Python
  35. Игра «Камень, ножницы, бумага» — Python
  36. Склеивание строк через метод join()
  37. Изменение логики работы с временем
  38. Типы возвращаемых значений в Python
  39. Декораторы для регистрации функций
  40. Обмен значений переменных в Python
  41. Преобразование многоуровневого словаря
  42. Списки: объединение, изменение
  43. Разработка игры Pong с turtle
  44. Методы classmethod и staticmethod
  45. Непрерывная проверка в Python

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