Курс 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. Множества и frozenset
  3. Переменная Шредингера
  4. Модуль math: основные функции
  5. Избегайте двойного подчеркивания
  6. Удаление ресурса в Python
  7. Отступы в Python
  8. Python Поверхностное Копирование
  9. Работа с комплексными числами
  10. Метод get для словарей
  11. Функция findall() для поиска вхождений строки
  12. Склеивание строк через метод join()
  13. *args и **kwargs в Python
  14. Progress с библиотекой tqdm
  15. Удаление falsy-значений из списка с помощью filter
  16. Оптимизация памяти с __slots__
  17. Логический оператор «and» в Python
  18. Python 3.12: переиспользование кавычек
  19. Разделение строки в Python
  20. Создание таблиц в терминале с PrettyTable
  21. Константы в модуле cmath
  22. Локальные переменные.
  23. Условные выражения в Python
  24. Разделение строки с регулярными выражениями
  25. Цикл for в Python
  26. Ограничение ресурсов в Python
  27. Flask: создание веб-приложений
  28. Модуль itertools: комбинации и перестановки
  29. Группы исключений в Python
  30. Управление мышью и клавиатурой с Pyautogui
  31. Создание генераторов в Python
  32. Оператор match в Python
  33. Генераторы данных
  34. Повторение элементов списков
  35. Вывод букв строки в Python
  36. Срез в Python
  37. Python Метод Union Множеств
  38. Создание уникального множества
  39. Работа с изображениями Pillow
  40. Поиск индексов подстроки
  41. Определение размера папок в Python
  42. Работа с collections в Python
  43. Поиск кода
  44. Проверка вхождения подстроки
  45. Инвертирование словаря
  46. Установка и использование pyshorteners

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