Курс 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"
- Создание словарей с defaultdict
- Расчет времени выполнения
- Работа с пользовательским вводом
- Вывод букв строки в Python
- Обработка ошибок в Python
- Измерение времени выполнения кода
- Работа с комбинациями в Python.
- Создание класса очереди
- Срез списка в Python
- Управление браузером с Selenium
- Проверка типов с помощью isinstance
- Определение основы слова с showballstemmer
- Отступы в Python
- Метод get() для словарей
- Отладка в командной строке
- Экспорт данных в файл.
- Подсчет элементов с помощью Counter из collections
- Измерение времени выполнения кода
- Применение функций в Python
- Сортировка в Python
- Модуль itertools: комбинации и перестановки
- Списковое включение в Python
- Изменение списка срезом
- Многострочные комментарии в Python
- Блок try…finally в Python
- Проверка запуска скрипта или импорта модуля
- Метод rxor для операции побитового исключающего «или»
- Курс Data Scientist в медицине
- Подчеркивание в REPL
- Упрощение условных выражений с тернарным оператором
- Печать календаря
- Форматирование строк в Python
- Порядок и длина множеств в Python
- Переопределение метода delitem в Python
- Очистка входных данных
- Метод title() в Python
- Работа с библиотекой xkcd
- Создание .exe файла с pyinstaller
- Метод matmul для умножения матриц
- Особенности ключей словаря в Python
- Структура данных словарь в Python
- Непрерывная проверка в Python
- Извлечение чисел из текста
- Генерация случайных данных в NumPy
- Функции-генераторы в Python















