Курс 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"

  1. Вакансии в Nebius
  2. Работа с файлами в Python
  3. Основные операции с Numpy
  4. Работа с timedelta в Python
  5. Экспорт данных в файл.
  6. Перезагрузка оператора в Python
  7. Создание объекта времени
  8. Сортировка с параметром key
  9. Python Calendar Usage
  10. Форматирование заголовков в Python
  11. Оператор * в Python
  12. Нахождение самого длинного слова в списке с помощью max
  13. Метод bool() в Python
  14. Поиск частых элементов в списке
  15. Создание и инициализация объектов
  16. Измерение времени выполнения
  17. Оператор Walrus в Python 3.8
  18. Передача словаря через **kwargs
  19. Создание словарей с defaultdict
  20. Объединение списков с помощью zip
  21. Сравнение неупорядоченных списков
  22. Проверка условий в Python
  23. Создание функций с произвольным количеством аргументов
  24. Метод join() для объединения строк
  25. Solidity для DeFi Ethereum
  26. F-строки в Python 3.8
  27. Управление ресурсами в Python
  28. Вывод символов строки в Python
  29. Преобразование списков в словарь
  30. Метод join() с набором
  31. Аргумент по умолчанию
  32. Подписка на каналы разработчиков
  33. Работа с изображениями PIL
  34. Обработка исключений в Python 3
  35. Namedtuple в Python
  36. Регистрация на курсы SF Education
  37. Метод setitem в Python
  38. Создание задания в Cron
  39. Возврат нескольких значений из функции
  40. Работа с прокси в Python
  41. Извлечение аудио из видео
  42. Установка и загрузка Instaloader
  43. Оператор is в Python
  44. Аннотации типов в Python
  45. Нахождение разницы между списками в Python
  46. Генераторы словарей и множеств
  47. GitHub в Telegram: подписка на уведомления

Marketello читают маркетологи из крутых компаний