Курс 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
- Склеивание строк без циклов
- Проверка существования переменной с оператором :=
- Использование defaultdict в Python
- Список методов и атрибутов
- Форматирование заголовков в Python
- Правила именования переменных
- Работа со словарями Python
- Измерение времени выполнения кода с использованием time
- split() — разделение строки
- Имена объектов в Python
- Простой калькулятор Python
- Измерение потребления памяти при сортировке
- Модуль itertools: эффективная работа с итераторами
- Функции высшего порядка в Python
- Документация функции help() в Python
- Функция zip() в Python
- Работа с переменными в Python
- Подсказки при вводе данных в Python
- JSON-esque в Python
- Объединение словарей в Python 3.5+
- Операторы увеличения и уменьшения в Python
- Различия символов в Python
- Управление фоновыми задачами в Python
- Игра «Виселица» на Python
- Присвоение и ссылки
- Копирование файлов с shutil()
- Метод __getitem__ в Python
- Измерение времени выполнения кода
- Списковое включение в Python
- Работа с URL-адресами в Python
- Форматирование строк в Python.
- Реализация метода __abs__ в Python
- Вызов функций по строке в Python.
- Поиск шаблона в строке
- Работа с прокси в Python
- Асинхронное выполнение задач в процессах
- Работа с географическими данными в Python
- Работа с NumPy.linalg
- Создание копии итератора
- Ключевое слово global в Python
- Операции с матрицами в Python
- Возврат нескольких значений из функции















