Курс 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"
- Обработка исключения UnboundLocalError
- Зарезервированные слова в Python
- Списковые включения в Python
- Операция += для списков
- Создание уникального проекта
- Генерация UUID в Python
- Работа с YAML в Python
- Аннотации типов в Python
- Абстракции словарей и множеств в Python
- Переворот последовательности
- Декоратор Property в Python
- Проблемы с dict в Python
- Экранирование символов в Python
- Присвоение и ссылки
- Преобразование данных в Python
- Решение переменной Шредингера
- Операторы присваивания в Python
- Поиск уникальных и повторяющихся элементов
- Вычисление фазы комплексного числа
- Удаление и повторная вставка ключа в OrderedDict
- Импорт модулей в Python 3.12
- Оператор @ для умножения матриц
- Функции all() и any() в Python
- Генерация резюме в Gensim
- Работа с датами в Python
- Нахождение разницы между списками в Python
- Обновление шаблона base.html
- Компиляция регулярных выражений
- Функция product() в Python
- Лямбда-функции в Python
- Howdoi — получение ответов из терминала
- Введение в PyTorch
- Модуль pprint: улучшение вывода данных
- Проверка на истинность объектов в Python
- Настройка нарезки списков
- Форматирование строк в Python
- Создание генераторов
- Поиск повторов в списке
- Блок try-except-else
- Метод radd для пользовательских чисел
- Объединение словарей в Python
- Расчет времени выполнения
- Создание именованных кортежей в Python
- Отрицательные индексы списков в Python
- Удаление специальных символов с помощью re.sub
- Аннотации типов в Python
- Проверка окончания строки с помощью str.endswith()















