Курс 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. Подсчет элементов в Python
  3. Проблемы с именами переменных
  4. Транспонирование 2D-массива с помощью zip
  5. Избегайте изменяемых аргументов
  6. Работа с IP-адресами в Python
  7. Основные функции и модули Python
  8. Взаимодействие с внешними процессами в Python
  9. Объединение списков в Python.
  10. Работа с YAML в Python
  11. Операция += для списков
  12. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  13. Отладка в командной строке
  14. Отображение графиков в Jupyter с Matplotlib
  15. Оператор walrus в Python
  16. Поиск частого элемента
  17. Работа с контекстными переменными
  18. Функция zip() в Python
  19. Оператор space-invader
  20. Bootle — простой веб-фреймворк
  21. Распаковка значений в Python
  22. Доступ к локальным переменным
  23. Работа с CSV файлами в Python
  24. Форматирование данных с pprint
  25. Генератор надежных паролей
  26. Таймер обратного отсчета
  27. Распаковка аргументов в Python
  28. Python Метод del.
  29. Библиотека Chartify: руководство
  30. Форматирование строк в Python
  31. Очистка входных данных
  32. Python Менеджер контекста
  33. Модуль os: работа с файлами и папками
  34. Дизассемблирование Python кода
  35. Заказ карты Тинькофф Black
  36. Работа с контекст-менеджером «with»
  37. Переопределение метода divmod
  38. Ключевое слово global в Python
  39. Генераторы и сеты в Python
  40. Копирование объектов в Python
  41. Генераторы в Python
  42. Обновление множества в Python
  43. Объединение словарей в Python
  44. Хеширование паролей с использованием salt

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