Курс 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. Работа с JSON в Python
  3. Блок try…finally в Python
  4. Генераторы в Python
  5. Оптимизация гиперпараметров в Python
  6. Копирование файлов с shutil()
  7. Установка переменной среды в Python
  8. Python Translator: создание локальных переводчиков
  9. Вычисление натуральных логарифмов в NumPy
  10. Оператор «моржа» (Walrus Operator)
  11. Метод Enumerate() для списков
  12. Функция reversed() в Python
  13. Оператор del в Python
  14. F-строки в Python
  15. Метод округления чисел
  16. Метод сравнения объектов в Python
  17. Обработка аргументов Python
  18. Передача неизвестных аргументов в Python.
  19. Декораторы в Python
  20. Модуль pprint: улучшение вывода данных
  21. Создание вкладок с TKinter
  22. Поиск самого длинного слова в списке с использованием max()
  23. Удаление элемента из списка
  24. Переменная Шредингера
  25. Подсчет вхождений элементов
  26. Списки в Python: синтаксис представления
  27. Управление контекстом выполнения
  28. Операторы объединения в Python 3.9
  29. Основы работы со списками
  30. Метод __getitem__ в Python
  31. Метод __call__ в Python
  32. Сортировка элементов в Python
  33. Просмотр атрибутов и методов класса
  34. Изменение элемента списка
  35. Метод join() для объединения элементов строки
  36. Удаление и повторная вставка ключа в OrderedDict
  37. Возвращение нескольких значений
  38. Работа с Telegram API на Python
  39. Анонимные функции в Python
  40. Разделение строк методом split()
  41. %pinfo: получение информации об объекте
  42. Удаление файлов и папок в Python
  43. Протокол управления контекстом
  44. Декоратор total_ordering для класса Point

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