Курс 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
- Проблемы с именами переменных
- Транспонирование 2D-массива с помощью zip
- Избегайте изменяемых аргументов
- Работа с IP-адресами в Python
- Основные функции и модули Python
- Взаимодействие с внешними процессами в Python
- Объединение списков в Python.
- Работа с YAML в Python
- Операция += для списков
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Отладка в командной строке
- Отображение графиков в Jupyter с Matplotlib
- Оператор walrus в Python
- Поиск частого элемента
- Работа с контекстными переменными
- Функция zip() в Python
- Оператор space-invader
- Bootle — простой веб-фреймворк
- Распаковка значений в Python
- Доступ к локальным переменным
- Работа с CSV файлами в Python
- Форматирование данных с pprint
- Генератор надежных паролей
- Таймер обратного отсчета
- Распаковка аргументов в Python
- Python Метод del.
- Библиотека Chartify: руководство
- Форматирование строк в Python
- Очистка входных данных
- Python Менеджер контекста
- Модуль os: работа с файлами и папками
- Дизассемблирование Python кода
- Заказ карты Тинькофф Black
- Работа с контекст-менеджером «with»
- Переопределение метода divmod
- Ключевое слово global в Python
- Генераторы и сеты в Python
- Копирование объектов в Python
- Генераторы в Python
- Обновление множества в Python
- Объединение словарей в Python
- Хеширование паролей с использованием salt















