Курс 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"
- Изменение списка срезами
- Установка и использование Logzero
- Создание новых функций с помощью functools.partial
- Безопасные SQL-запросы в Python 3.11
- Избегайте пустого списка
- Ветвление выражения в Python
- Списковое включение в Python
- Проверка ввода с помощью isdigit
- Настройка Cron
- Работа с Requests для HTTP-запросов
- Установка переменной среды в Python
- Работа с библиотекой xkcd
- Доступ к локальным переменным
- Python: Фильтрация списков с помощью filter()
- Flask — веб-фреймворк Python
- Работа с NumPy.linalg
- Python и Монти Пайтон
- Работа с кортежами в Python
- Анализ кода — Python
- Метод rmatmul для обратного матричного умножения
- Многострочные комментарии в Python
- Установка random seed в Python
- Функции all и any в Python
- Numpy: использование Ellipsis
- Вычисление времени выполнения
- Concrete Paths — метод .with_suffix()
- Сравнение неупорядоченных списков
- Частичное применение функций в Python
- Отношения подклассов в Python
- Срезы в Numpy
- Переименование файлов в Python
- Улучшенные подсказки для импорта в Python 3.12
- Преобразование строк в числа в Python
- Python 3.12: Псевдонимы типов
- Показ всплывающих окон Tkinter
- Скрытие вывода данных
- Установка пакета в Python
- Методы Python для работы с данными
- Списки в Python: синтаксис представления
- Множественное наследование в Python
- Участие в LP стейкинге Waves
- Структурирование именованных констант
- Вывод с переменной через запятую
- Метод сравнения объектов в Python
- Загрузка постов Instagram















