Курс 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. Создание словарей с defaultdict
  2. Расчет времени выполнения
  3. Работа с пользовательским вводом
  4. Вывод букв строки в Python
  5. Обработка ошибок в Python
  6. Измерение времени выполнения кода
  7. Работа с комбинациями в Python.
  8. Создание класса очереди
  9. Срез списка в Python
  10. Управление браузером с Selenium
  11. Проверка типов с помощью isinstance
  12. Определение основы слова с showballstemmer
  13. Отступы в Python
  14. Метод get() для словарей
  15. Отладка в командной строке
  16. Экспорт данных в файл.
  17. Подсчет элементов с помощью Counter из collections
  18. Измерение времени выполнения кода
  19. Применение функций в Python
  20. Сортировка в Python
  21. Модуль itertools: комбинации и перестановки
  22. Списковое включение в Python
  23. Изменение списка срезом
  24. Многострочные комментарии в Python
  25. Блок try…finally в Python
  26. Проверка запуска скрипта или импорта модуля
  27. Метод rxor для операции побитового исключающего «или»
  28. Курс Data Scientist в медицине
  29. Подчеркивание в REPL
  30. Упрощение условных выражений с тернарным оператором
  31. Печать календаря
  32. Форматирование строк в Python
  33. Порядок и длина множеств в Python
  34. Переопределение метода delitem в Python
  35. Очистка входных данных
  36. Метод title() в Python
  37. Работа с библиотекой xkcd
  38. Создание .exe файла с pyinstaller
  39. Метод matmul для умножения матриц
  40. Особенности ключей словаря в Python
  41. Структура данных словарь в Python
  42. Непрерывная проверка в Python
  43. Извлечение чисел из текста
  44. Генерация случайных данных в NumPy
  45. Функции-генераторы в Python

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