Курс 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"
- Функции классификации комплексных чисел
- Метод repr() в Python
- Символ подчеркивания в Python
- *args и **kwargs в Python
- Генераторы списков в Python
- Создание графиков в терминале
- Блок else в циклах.
- Оператор (*) в Python
- Подсчет элементов в Python
- Метод join() для объединения строк
- Python Enumerate
- Работа с географическими данными.
- Обработка ошибок в Python
- Создание и использование модулей в Python
- Декораторы с @wraps
- Отображение графиков в Jupyter с Matplotlib
- Руководство по библиотеке pydantic
- Сглаживание списка
- Избегайте двойного подчеркивания
- Функции высшего порядка в Python
- Создание функций высшего порядка
- Операторы сравнения в Python
- Назначение максимального и минимального значения переменной в Python.
- Python-dateutil — работа с датами
- История Python
- Оператор in для проверки наличия элемента
- Тестирование с responses
- Сериализация и десериализация объектов
- Основные методы NumPy
- Создание .exe файла с pyinstaller
- Метод rlshift для битового сдвига
- Проверка списка: any() и all()
- Проблема с изменяемыми аргументами
- Преобразование списков в словарь
- Декораторы в Python
- Генераторы в Python
- Объединение словарей в Python
- Обработка ошибок в Python
- Выбор редактора кода.
- Декораторы в Python
- Реверс строки в Python
- Модуль itertools: комбинации и перестановки
- Оператор объединения словарей
- Python 3.12: Псевдонимы типов
- Тип данных TypeVarTuple















