Курс 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
- Множества и frozenset
- Переменная Шредингера
- Модуль math: основные функции
- Избегайте двойного подчеркивания
- Удаление ресурса в Python
- Отступы в Python
- Python Поверхностное Копирование
- Работа с комплексными числами
- Метод get для словарей
- Функция findall() для поиска вхождений строки
- Склеивание строк через метод join()
- *args и **kwargs в Python
- Progress с библиотекой tqdm
- Удаление falsy-значений из списка с помощью filter
- Оптимизация памяти с __slots__
- Логический оператор «and» в Python
- Python 3.12: переиспользование кавычек
- Разделение строки в Python
- Создание таблиц в терминале с PrettyTable
- Константы в модуле cmath
- Локальные переменные.
- Условные выражения в Python
- Разделение строки с регулярными выражениями
- Цикл for в Python
- Ограничение ресурсов в Python
- Flask: создание веб-приложений
- Модуль itertools: комбинации и перестановки
- Группы исключений в Python
- Управление мышью и клавиатурой с Pyautogui
- Создание генераторов в Python
- Оператор match в Python
- Генераторы данных
- Повторение элементов списков
- Вывод букв строки в Python
- Срез в Python
- Python Метод Union Множеств
- Создание уникального множества
- Работа с изображениями Pillow
- Поиск индексов подстроки
- Определение размера папок в Python
- Работа с collections в Python
- Поиск кода
- Проверка вхождения подстроки
- Инвертирование словаря
- Установка и использование pyshorteners















