Курс 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. Метод repr() в Python
  3. Символ подчеркивания в Python
  4. *args и **kwargs в Python
  5. Генераторы списков в Python
  6. Создание графиков в терминале
  7. Блок else в циклах.
  8. Оператор (*) в Python
  9. Подсчет элементов в Python
  10. Метод join() для объединения строк
  11. Python Enumerate
  12. Работа с географическими данными.
  13. Обработка ошибок в Python
  14. Создание и использование модулей в Python
  15. Декораторы с @wraps
  16. Отображение графиков в Jupyter с Matplotlib
  17. Руководство по библиотеке pydantic
  18. Сглаживание списка
  19. Избегайте двойного подчеркивания
  20. Функции высшего порядка в Python
  21. Создание функций высшего порядка
  22. Операторы сравнения в Python
  23. Назначение максимального и минимального значения переменной в Python.
  24. Python-dateutil — работа с датами
  25. История Python
  26. Оператор in для проверки наличия элемента
  27. Тестирование с responses
  28. Сериализация и десериализация объектов
  29. Основные методы NumPy
  30. Создание .exe файла с pyinstaller
  31. Метод rlshift для битового сдвига
  32. Проверка списка: any() и all()
  33. Проблема с изменяемыми аргументами
  34. Преобразование списков в словарь
  35. Декораторы в Python
  36. Генераторы в Python
  37. Объединение словарей в Python
  38. Обработка ошибок в Python
  39. Выбор редактора кода.
  40. Декораторы в Python
  41. Реверс строки в Python
  42. Модуль itertools: комбинации и перестановки
  43. Оператор объединения словарей
  44. Python 3.12: Псевдонимы типов
  45. Тип данных TypeVarTuple

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