Курс 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
- Работа с JSON в Python
- Блок try…finally в Python
- Генераторы в Python
- Оптимизация гиперпараметров в Python
- Копирование файлов с shutil()
- Установка переменной среды в Python
- Python Translator: создание локальных переводчиков
- Вычисление натуральных логарифмов в NumPy
- Оператор «моржа» (Walrus Operator)
- Метод Enumerate() для списков
- Функция reversed() в Python
- Оператор del в Python
- F-строки в Python
- Метод округления чисел
- Метод сравнения объектов в Python
- Обработка аргументов Python
- Передача неизвестных аргументов в Python.
- Декораторы в Python
- Модуль pprint: улучшение вывода данных
- Создание вкладок с TKinter
- Поиск самого длинного слова в списке с использованием max()
- Удаление элемента из списка
- Переменная Шредингера
- Подсчет вхождений элементов
- Списки в Python: синтаксис представления
- Управление контекстом выполнения
- Операторы объединения в Python 3.9
- Основы работы со списками
- Метод __getitem__ в Python
- Метод __call__ в Python
- Сортировка элементов в Python
- Просмотр атрибутов и методов класса
- Изменение элемента списка
- Метод join() для объединения элементов строки
- Удаление и повторная вставка ключа в OrderedDict
- Возвращение нескольких значений
- Работа с Telegram API на Python
- Анонимные функции в Python
- Разделение строк методом split()
- %pinfo: получение информации об объекте
- Удаление файлов и папок в Python
- Протокол управления контекстом
- Декоратор total_ordering для класса Point















