Курс 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"
- Обработка ошибок в Python
- Установка Home Assistant
- Разбиение строки в Python
- Python defaultdict добавление ключа
- Обработка исключения UnboundLocalError
- Объединение словарей в Python
- Функции any() и all() в Python
- Метод rsub для пользовательских чисел
- Установка переменной среды в Python
- Python Аргументы по умолчанию
- Именованные аргументы в Python
- EMOT преобразование эмодзи в текст
- Проверка типов с помощью isinstance
- Операторы присваивания в Python
- Мощь вложенных функций в Python
- Деление в Python
- Динамическая типизация в Python
- Python и Юникод: работа с цифрами
- Зарезервированные слова в Python
- Обратное распространение ошибки
- Копирование словарей и списков в Python
- Удаление элементов из списка в Python
- Функция pow() — возвести число в степень
- Создание словарей с defaultdict()
- F-строки в Python 3.8
- Переопределение метода __lshift__
- Работа со строками в Python
- Использование type hints
- Проверка окончания строки с помощью str.endswith()
- Преобразование документов в PDF с помощью Spire.Office
- Получение текущего времени в Python
- Создание уникального множества
- Частичное применение функций в Python
- Мониторинг памяти с Pympler
- Преобразование строк в числа с плавающей запятой
- Цикл for в Python
- Многопоточность и асинхронное программирование в Python
- Капитализация строк
- Преобразование чисел в восьмеричную строку
- Генераторы в Python
- Создание пустых функций и классов в Python
- Работа с процессами в Python
- Преобразование списков в словарь
- Метод __irshift__ для побитового сдвига вправо















