Курс 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. Оператор is в Python
  3. Функция zip() в Python
  4. Разность множеств
  5. Преобразование Word в PDF с Spire.Doc
  6. Оператор in в Python
  7. Переворот строки
  8. Избегание изменяемых аргументов
  9. Хешируемые ключи в Python
  10. Показ всплывающих окон Tkinter
  11. Документирование функций в Python
  12. Основы работы со списками
  13. Генераторы в Python
  14. Декораторы в Python
  15. Создание именованных кортежей в Python
  16. Библиотека funcy: удобные утилиты
  17. Numpy: использование Ellipsis
  18. Метод join() для объединения строк
  19. Mad Libs Generator
  20. Метод __irshift__ для побитового сдвига вправо
  21. Аннотации типов в Python
  22. Цикл while в Python
  23. Python itertools combinations() — группировка элементов
  24. Декоратор Property в Python
  25. Проблема с изменяемыми аргументами
  26. Функция zip() для объединения списков
  27. Переопределение оператора % для объектов
  28. Многоточие в Python
  29. Конкатенация строк с join() в Python
  30. Обработка ошибки IndexError
  31. Counter() — подсчет элементов
  32. Работа с zip-архивами в Python
  33. Функция zip() в Python
  34. Структура строк в Python
  35. Проверка типа объекта в Python
  36. Преобразование документов в PDF с помощью Spire.Office
  37. Срезы в Python
  38. Выражения-генераторы в Python
  39. Конкатенация строк в Python
  40. Методы и функции в Python
  41. Перехват исключений в Python
  42. Определение индекса элемента списка
  43. inspect в Python: анализ кода
  44. Функция zip() в Python
  45. Чтение и запись TOML-конфигов
  46. Взаимодействие с sys

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