Python мул

Магический метод Python __mul__используется для реализации операции умножения (*) для пользовательских объектов. Когда вы используете оператор *между двумя объектами, Python внутренне вызывает метод __mul__объекта левого операнда и передает правый операнд в качестве аргумента. Это позволяет вам определить собственное поведение для умножения в ваших классах.

Вот пример, демонстрирующий использование метода __mul__:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def __mul__(self, other):
        if isinstance(other, (int, float)):
            return Point(self.x * other, self.y * other)
        elif isinstance(other, Point):
            return Point(self.x * other.x, self.y * other.y)
        else:
            raise TypeError("Multiplication not supported between Point and {}".format(type(other)))
    def __str__(self):
        return "Point({}, {})".format(self.x, self.y)

p1 = Point(2, 3)
p2 = Point(4, 5)
result1 = p1 * 2
result2 = p1 * p2
print(result1)  # Output: Point(4, 6)
print(result2)  # Output: Point(8, 15)

В приведенном выше примере у нас есть класс Point, представляющий точку в 2D-пространстве. Метод __mul__определен для обработки умножения либо на скалярное значение (целое число или с плавающей запятой), либо на другой объект Point. Он выполняет умножение покомпонентно и возвращает новый объект Point.

Метод __str__также определен для предоставления строкового представления объекта Point.

Волшебный метод: реализация умножения для пользовательских объектов”

, умножение, пользовательские объекты, перегрузка операторов