Курс 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. Подсчет частоты элементов с Counter
  2. Замыкания в Python
  3. Python reversed() функция
  4. Игра Виселица на Python
  5. Проверка дубликатов в Python
  6. Экранирование символов в Python
  7. Метод get() в Python
  8. Функция map() в Python
  9. Работа с контекст-менеджером «with»
  10. JSON в Python: модуль, dump, dumps, load
  11. Декодирование строк в Python
  12. Сортировка данных в Python
  13. Сохранение и загрузка модели в PyTorch
  14. Документирование функций в Python
  15. Оператор объединения словарей
  16. Метод invert для побитового отрицания
  17. Контекстный менеджер в Python
  18. Применение команды break
  19. Команда %dhist — список посещенных каталогов
  20. Оператор is в Python
  21. Переопределение метода __rshift__
  22. Python Тесты и Гайды
  23. Использование *args
  24. Различия символов в Python
  25. Работа со словарями с defaultdict из collections
  26. Очистка списка от False, None, 0, «»
  27. Работа с переменными в Python
  28. Переопределение метода __lshift__
  29. Изменения в обработке логических значений
  30. Сравнение def и lambda функций в Python
  31. Проблема сравнения словарей
  32. Генераторы в Python
  33. Определение индекса элемента списка
  34. Работа с прокси в Python
  35. Работа с NumPy
  36. Обработка исключений в Python
  37. Pillow: работа с изображениями
  38. Переопределение метода __and__
  39. Декоратор total_ordering для класса Point
  40. Тайное преобразование типа ключа
  41. Скачать видео с YouTube
  42. Упрощение условных выражений с тернарным оператором
  43. Переменная Шредингера
  44. Списковое включение в Python
  45. Расчет времени выполнения кода
  46. Lambda-функция в Python: использование с map() и sum()
  47. Блок else в Python
  48. Работа с collections в Python.

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