Курс 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"
- Вакансии в Nebius
- Работа с файлами в Python
- Основные операции с Numpy
- Работа с timedelta в Python
- Экспорт данных в файл.
- Перезагрузка оператора в Python
- Создание объекта времени
- Сортировка с параметром key
- Python Calendar Usage
- Форматирование заголовков в Python
- Оператор * в Python
- Нахождение самого длинного слова в списке с помощью max
- Метод bool() в Python
- Поиск частых элементов в списке
- Создание и инициализация объектов
- Измерение времени выполнения
- Оператор Walrus в Python 3.8
- Передача словаря через **kwargs
- Создание словарей с defaultdict
- Объединение списков с помощью zip
- Сравнение неупорядоченных списков
- Проверка условий в Python
- Создание функций с произвольным количеством аргументов
- Метод join() для объединения строк
- Solidity для DeFi Ethereum
- F-строки в Python 3.8
- Управление ресурсами в Python
- Вывод символов строки в Python
- Преобразование списков в словарь
- Метод join() с набором
- Аргумент по умолчанию
- Подписка на каналы разработчиков
- Работа с изображениями PIL
- Обработка исключений в Python 3
- Namedtuple в Python
- Регистрация на курсы SF Education
- Метод setitem в Python
- Создание задания в Cron
- Возврат нескольких значений из функции
- Работа с прокси в Python
- Извлечение аудио из видео
- Установка и загрузка Instaloader
- Оператор is в Python
- Аннотации типов в Python
- Нахождение разницы между списками в Python
- Генераторы словарей и множеств
- GitHub в Telegram: подписка на уведомления















