Курс 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. Обход элементов в Python
  2. Переопределение метода __or__()
  3. Метод enumerate() в Python
  4. Оператор += для объединения строк
  5. Возврат нескольких значений
  6. Принципы программирования
  7. HTTP-запросы с библиотекой Requests
  8. Логирование с Logzero
  9. Работа с argparse
  10. Удаление элементов из списка
  11. Проверка условий: all и any
  12. Инициализация объекта
  13. Использование обратной косой черты в f-строках
  14. Библиотека Emoji: использование смайлов в Python
  15. Удаление элемента по индексу в Python
  16. Цикл for с enumerate() в Python
  17. f-строки в формате строк
  18. Проверка однородности элементов списка
  19. Работа с модулем Calendar
  20. Проверка класса объекта
  21. Преобразование чисел в восьмеричную строку
  22. Работа с срезами в Python
  23. Установка и использование Telegram API в Python
  24. Проверка версии Python
  25. Структура данных deque в Python
  26. Проверка надежности пароля на Python
  27. Создание словарей с defaultdict
  28. Перегрузка операторов в Python
  29. Функция format() в Python
  30. Запрос пароля с помощью getpass
  31. Применение функций в Python
  32. Нан-рефлексивность в Python
  33. Генераторы списков
  34. Метод setdefault() в Python
  35. List Comprehension Tutorial
  36. Преобразование строк в числа с плавающей запятой
  37. Возврат нескольких значений
  38. Распаковка аргументов в Python
  39. Установка и использование pyshorteners
  40. Метод __ixor__ для побитового исключающего ИЛИ
  41. Условные выражения в Python
  42. Использование функции product
  43. Метод __getitem__ в Python
  44. Очистка списка от False, None, 0, «»

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