Курс 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. Поиск самого частого элемента
  2. Создание и удаление объектов
  3. Функции в Python: создание и вызов
  4. Работа с парами ключ-значение
  5. Оператор in в Python
  6. Python Поверхностное Копирование
  7. Проблема сравнения словарей
  8. Функция pow() — возвести число в степень
  9. ROT13 Шифр Цезаря в Python
  10. Дизассемблирование Python кода
  11. Создание namedtuple списком полей
  12. Метод __irshift__ для Python
  13. Поиск индексов в списке
  14. Метод split() для разделения строк
  15. Переменная с нижним подчеркиванием
  16. Мониторинг работы программы Py-spy
  17. Изменение объектов в Python
  18. Работа с рекламными данными в Pandas
  19. Закрытие файла в Python
  20. Преобразование букв в нижний регистр
  21. Python: библиотеки и функции
  22. Декоратор для группы пользователей в Django
  23. Функция zip() — объединение последовательностей
  24. Обработка аргументов Python
  25. Добавление элементов в список: append() vs extend()
  26. Логирование с Logzero
  27. Работа с getopt
  28. Solidity для DeFi Ethereum
  29. Работа с базами данных SQLite
  30. Обработка ошибок в Python
  31. Работа с IP-адресами в Python
  32. Моржовый оператор в Python 3.8
  33. Сериализация и десериализация объектов
  34. Функции классификации комплексных чисел
  35. Многопроцессорное программирование в Python
  36. Принципы Zen Python
  37. Оператор is в Python
  38. Заказ карты Тинькофф Black
  39. Перебор элементов списка в Python
  40. Создание GUI на Tkinter
  41. Генераторы в Python
  42. Отладка в Python
  43. Работа с Telegram API на Python
  44. Метод classmethod
  45. Блок else в циклах.
  46. lru_cache оптимизация функций
  47. Синхронизация потоков с time.sleep()

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