Курс 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
- Переопределение метода __or__()
- Метод enumerate() в Python
- Оператор += для объединения строк
- Возврат нескольких значений
- Принципы программирования
- HTTP-запросы с библиотекой Requests
- Логирование с Logzero
- Работа с argparse
- Удаление элементов из списка
- Проверка условий: all и any
- Инициализация объекта
- Использование обратной косой черты в f-строках
- Библиотека Emoji: использование смайлов в Python
- Удаление элемента по индексу в Python
- Цикл for с enumerate() в Python
- f-строки в формате строк
- Проверка однородности элементов списка
- Работа с модулем Calendar
- Проверка класса объекта
- Преобразование чисел в восьмеричную строку
- Работа с срезами в Python
- Установка и использование Telegram API в Python
- Проверка версии Python
- Структура данных deque в Python
- Проверка надежности пароля на Python
- Создание словарей с defaultdict
- Перегрузка операторов в Python
- Функция format() в Python
- Запрос пароля с помощью getpass
- Применение функций в Python
- Нан-рефлексивность в Python
- Генераторы списков
- Метод setdefault() в Python
- List Comprehension Tutorial
- Преобразование строк в числа с плавающей запятой
- Возврат нескольких значений
- Распаковка аргументов в Python
- Установка и использование pyshorteners
- Метод __ixor__ для побитового исключающего ИЛИ
- Условные выражения в Python
- Использование функции product
- Метод __getitem__ в Python
- Очистка списка от False, None, 0, «»















