Курс Python → Оператор умножения для вектора

Метод mul(self, other) в классе Vector позволяет определить поведение объекта при использовании оператора умножения *. Когда операнд other является числом (целым или вещественным), соответствующие координаты вектора умножаются на это число, и возвращается новый объект Vector, представляющий результат умножения. Если other не является числом, вызывается исключение TypeError, указывающее, что операция не поддерживается.

Метод rmul(self, other) в классе Vector поддерживает коммутативность умножения, что позволяет умножать число на вектор (например, 3 * v). Этот метод просто вызывает метод mul, чтобы обеспечить одинаковое поведение для обеих форм умножения.

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


class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def mul(self, other):
        if isinstance(other, (int, float)):
            return Vector(self.x * other, self.y * other)
        else:
            raise TypeError("Unsupported operation")
    
    def rmul(self, other):
        return self.mul(other)
Твои коллеги будут рады, поделись в

Автор урока

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

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

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

  1. Импорт объектов из модулей
  2. Создание матрицы в Python
  3. Деление в Python
  4. Возврат нескольких значений
  5. Частичное совпадение пользовательского ввода в Python 3.10
  6. Создание namedtuple списком полей
  7. Генераторы списков в Python
  8. Defaultdict в Python
  9. Фильтрация списка чисел
  10. Обработка StopIteration в Python
  11. Генераторные функции в Python
  12. Псевдонимы в Python
  13. Декораторы в Python
  14. Оптимизация гиперпараметров в Python
  15. Многопроцессорное программирование в Python
  16. Поиск самого длинного слова в списке с использованием max()
  17. Установка и использование pyshorteners
  18. Конкатенация списков в Python
  19. Создание копии итератора
  20. Виртуальное окружение Python
  21. Генерация фальшивых данных с Faker
  22. Оператор распаковки в Python
  23. Склеивание строк через метод join()
  24. Метод gt в Python
  25. Делегирование в Python
  26. Закрытие файла в Python
  27. Сортировка элементов в Python
  28. Работа с deque из collections
  29. Создание и инициализация объектов
  30. Работа с модулем random
  31. Блок else в обработке исключений
  32. Создание графики с черепахой
  33. Оператор continue в Python
  34. Поиск анаграмм с Counter
  35. Отображение графиков в Jupyter с Matplotlib
  36. Python Translator: создание локальных переводчиков
  37. Тестирование с unittest
  38. PEP-401: оператор
  39. Логический оператор «and» в Python
  40. Работа с JSON данными в Python
  41. Работа с географическими данными в Python
  42. Модуль itertools: эффективная работа с итераторами

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