Курс 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. Поиск анаграмм с Counter
  2. Шаблоны Flask: условия и циклы
  3. Создание уникального проекта
  4. Форматирование строк с f-строками
  5. Разделение списка на гнппы
  6. Оператор «is not» в Python
  7. Работа с модулем Calendar
  8. Операции с массивами в NumPy
  9. Декораторы в Python
  10. Особенности запятых в Python
  11. Обрезка изображения с Pillow
  12. Блок else в Python
  13. Установка виртуального окружения Python
  14. Работа со строками в Python
  15. Обработка исключений в Python
  16. Экспорт функций в Python
  17. Метод ne для сравнения объектов
  18. Модуль pprint: улучшение вывода данных
  19. Декораторы в Python
  20. Хеширование паролей с использованием salt
  21. Сравнение объектов в Python
  22. Метод repr() в Python
  23. Запрос DELETE с библиотекой requests
  24. Расширение информации об ошибке в Python
  25. Определение размера папок в Python
  26. Структурирование данных с Pydantic
  27. Многопоточность и асинхронное программирование в Python
  28. CLI-инструмент howdoi
  29. Функции map() и reduce() в Python
  30. Установка random seed в Python
  31. Работа с SQLite в Python
  32. Разность множеств
  33. Метод __call__ в Python
  34. Отображение графиков в Jupyter с Matplotlib
  35. Сериализация и десериализация объектов
  36. Работа с NumPy массивами
  37. Вывод переменной и строки в Python
  38. Работа с файлами в Python
  39. Синтаксис переменных цикла в Python
  40. Конвертация коллекций в Python
  41. Вложенные генераторы в Python
  42. Функции высшего порядка в Python

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