Курс Python → Метод add для класса Vector

Метод add(self, other) в Python позволяет определить поведение объекта при использовании оператора сложения +. Этот метод полезен при работе с пользовательскими типами данных, такими как векторы, матрицы и другие структуры данных, где определение операции сложения имеет смысл.

В приведенном примере, если операнд other также является объектом типа Vector, мы складываем соответствующие координаты векторов и возвращаем новый объект Vector, представляющий сумму. Если other не является вектором, мы вызываем исключение TypeError, указывая, что операция не поддерживается.

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


class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        
    def add(self, other):
        if isinstance(other, Vector):
            return Vector(self.x + other.x, self.y + other.y)
        else:
            raise TypeError("Unsupported operation")

В данном примере мы создаем класс Vector, у которого есть метод add, который определяет поведение сложения векторов. Если операнд other является объектом типа Vector, мы создаем новый вектор с соответствующими суммированными координатами. Если other не является вектором, то выбрасываем исключение TypeError.

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

Автор урока

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

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

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

  1. Извлечение новостей с помощью newspaper3k
  2. Непрерывная проверка в Python
  3. Счетчик в Python: most_common()
  4. Операции с кортежами
  5. Создание копии списка в Python
  6. Измерение времени выполнения кода
  7. Многоточие в Python
  8. Вложенные циклы в Python
  9. Изменение переменной в Python: nonlocal
  10. Метод difference_update() — разность множеств
  11. Ветвление выражения в Python
  12. Список импортированных модулей в Python
  13. Метод rlshift для битового сдвига
  14. Расчет времени выполнения
  15. Структура данных deque в Python
  16. Глубокое копирование объектов
  17. Создание класса очереди
  18. Создание лямбда-функций
  19. Установка Python3.7 и PIP
  20. Работа с байтовыми строками в Python
  21. Карта бомбоубежищ в Москве и Питере
  22. Руководство по использованию Colorama
  23. Запуск внешнего кода в Jupyter
  24. Работа с буфером обмена на Python
  25. Модуль sys: основы
  26. PEP-401: оператор
  27. Просмотр атрибутов и методов класса
  28. Методы HTTP запросов в Flask
  29. Секреты Python
  30. Сохранение и загрузка модели в PyTorch
  31. Операции со строками в Python
  32. Функции-генераторы в Python
  33. Использование *args
  34. Работа с асинхронными задачами в Python
  35. Проектирование Singleton с метаклассом
  36. Оптимизация памяти в Python
  37. Работа с часовыми поясами в Python.
  38. Работа с enumerate()
  39. Создание копии итератора
  40. Удаление дубликатов из списка с помощью dict.fromkeys
  41. Документирование функций в Python
  42. Класс Counter() для подсчета элементов
  43. Подсказки типов в Python
  44. ChainMap.new_child() — добавление нового словаря
  45. Вложенные функции в Python
  46. Получение частей дроби
  47. Метод Self в Python
  48. Работа с Enum в Python3.
  49. Объединение списков в Python

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