Курс 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. Сортировка элементов в Python
  2. Defaultdict в Python
  3. Роль запятой в Python
  4. Перегрузка операторов в Python
  5. Принципы LSP и ISP в Python
  6. Добавление кнопки в tkinter
  7. Установка библиотек в Python
  8. Фильтрация последовательности
  9. Декораторы в Python
  10. Раздувающийся словарь в Python
  11. Добавление вложенных списков
  12. Анонимные функции в Python
  13. Создание уникального множества
  14. Создание обратного итератора
  15. Проверка надежности пароля на Python
  16. Переопределение метода __rshift__
  17. Виртуальное окружение Python
  18. Принципы Zen of Python
  19. Вызов внешних программ в Python с помощью sh
  20. Создание словарей с defaultdict
  21. Функции классификации комплексных чисел
  22. Генераторы в Python
  23. Форматирование объектов с модулем pprint
  24. Анонимные функции Lambda
  25. Генераторы списков в Python
  26. Обработка данных в Python
  27. Измерение времени выполнения кода
  28. Проверка запуска скрипта или импорта модуля
  29. Форматирование строк в Python
  30. Оптимизация интернирования строк
  31. Управление фоновыми задачами в Python
  32. Импорт объектов из модулей
  33. Перевернуть список в Python
  34. Генерация QR-кодов с Python
  35. Строковое представление объектов
  36. Фильтрация списка чисел
  37. Повторение элементов в Python
  38. Возврат нескольких значений из функции
  39. Операторы объединения в Python 3.9
  40. Работа с файлами в Python
  41. Форматирование чисел в Python
  42. Распаковка элементов массива
  43. Декораторы в Python
  44. Обработка ошибок в Python
  45. Встраивание HTML в Jupyter Notebook

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