Курс 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. Проверка дублей в списке.
  3. Получение комбинаций в Python
  4. Склеивание строк без циклов
  5. Проверка существования переменной с оператором :=
  6. Использование defaultdict в Python
  7. Список методов и атрибутов
  8. Форматирование заголовков в Python
  9. Правила именования переменных
  10. Работа со словарями Python
  11. Измерение времени выполнения кода с использованием time
  12. split() — разделение строки
  13. Имена объектов в Python
  14. Простой калькулятор Python
  15. Измерение потребления памяти при сортировке
  16. Модуль itertools: эффективная работа с итераторами
  17. Функции высшего порядка в Python
  18. Документация функции help() в Python
  19. Функция zip() в Python
  20. Работа с переменными в Python
  21. Подсказки при вводе данных в Python
  22. JSON-esque в Python
  23. Объединение словарей в Python 3.5+
  24. Операторы увеличения и уменьшения в Python
  25. Различия символов в Python
  26. Управление фоновыми задачами в Python
  27. Игра «Виселица» на Python
  28. Присвоение и ссылки
  29. Копирование файлов с shutil()
  30. Метод __getitem__ в Python
  31. Измерение времени выполнения кода
  32. Списковое включение в Python
  33. Работа с URL-адресами в Python
  34. Форматирование строк в Python.
  35. Реализация метода __abs__ в Python
  36. Вызов функций по строке в Python.
  37. Поиск шаблона в строке
  38. Работа с прокси в Python
  39. Асинхронное выполнение задач в процессах
  40. Работа с географическими данными в Python
  41. Работа с NumPy.linalg
  42. Создание копии итератора
  43. Ключевое слово global в Python
  44. Операции с матрицами в Python
  45. Возврат нескольких значений из функции

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