Курс 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. Поиск самого частого элемента
  2. Повторение элементов списков
  3. Работа с Telegram API на Python
  4. Приближение чисел в Python
  5. Python reversed() функция
  6. Объединение словарей в Python
  7. Работа со временем в Python
  8. Переменные класса и экземпляра
  9. Python 3.12: переиспользование кавычек
  10. Defaultdict в Python
  11. Установка и использование библиотеки google
  12. Модуль functools в Python
  13. Классы данных в Python
  14. Декораторы в Python
  15. Управление контекстом выполнения
  16. Генерация резюме в Gensim
  17. Проверка вхождения подстроки
  18. Метод join() для объединения элементов
  19. Введение в Python
  20. Создание графики с черепахой
  21. Многострочные комментарии в Python
  22. Список переменных с %who
  23. Работа с коллекциями Python
  24. Обработка элементов в Python
  25. Оператор объединения словарей
  26. Сравнение строк в Python
  27. UserString в Python
  28. Подсчет элементов в списке с Counter
  29. Пропуск строк в файле с itertools
  30. Создание словарей и множеств в Python.
  31. Сортировка HTML по CSS-селектору
  32. Удаление falsy-значений из списка с помощью filter
  33. Профилирование с cProfile
  34. Метод Self в Python
  35. Визуализация пропусков данных
  36. Python defaultdict добавление ключа
  37. f-строки в формате строк
  38. Поиск наиболее частого элемента
  39. Правила именования переменных
  40. Объединение списков в строку
  41. Установка и использование emoji
  42. Экспорт функций в Python
  43. Метод rsub в Python: расширение функциональности вычитания
  44. Использование html-скриптов в Jupyter Notebook

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