Курс 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
- Деление в Python
- Возврат нескольких значений
- Частичное совпадение пользовательского ввода в Python 3.10
- Создание namedtuple списком полей
- Генераторы списков в Python
- Defaultdict в Python
- Фильтрация списка чисел
- Обработка StopIteration в Python
- Генераторные функции в Python
- Псевдонимы в Python
- Декораторы в Python
- Оптимизация гиперпараметров в Python
- Многопроцессорное программирование в Python
- Поиск самого длинного слова в списке с использованием max()
- Установка и использование pyshorteners
- Конкатенация списков в Python
- Создание копии итератора
- Виртуальное окружение Python
- Генерация фальшивых данных с Faker
- Оператор распаковки в Python
- Склеивание строк через метод join()
- Метод gt в Python
- Делегирование в Python
- Закрытие файла в Python
- Сортировка элементов в Python
- Работа с deque из collections
- Создание и инициализация объектов
- Работа с модулем random
- Блок else в обработке исключений
- Создание графики с черепахой
- Оператор continue в Python
- Поиск анаграмм с Counter
- Отображение графиков в Jupyter с Matplotlib
- Python Translator: создание локальных переводчиков
- Тестирование с unittest
- PEP-401: оператор
- Логический оператор «and» в Python
- Работа с JSON данными в Python
- Работа с географическими данными в Python
- Модуль itertools: эффективная работа с итераторами















