向量数学中的Python运算符重载

向量数学中的Python运算符重载,python,Python,代码: 问题:是否有一种方法可以使mul操作员过载: class Vector: def __init__(self): self.x = 0.0 self.y = 0.0 def __mul__(self, scalar): v = Vector() v.x = self.x * scalar v.y = self.y * scalar return v v = Vec

代码:

问题:是否有一种方法可以使mul操作员过载:

class Vector:
    def __init__(self):
        self.x = 0.0
        self.y = 0.0

    def __mul__(self, scalar):
        v = Vector()
        v.x = self.x * scalar
        v.y = self.y * scalar
        return v    


v = Vector()
v.x = 2
v.y = 5
v = v * 2

使用:


当左手操作数不支持相应的操作(
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?(链接位于第一行的
\uuurmul\uuuu
上)。顺便说一句,我没有提到操作员模块。哦,我好像错过了你提供的链接。再次感谢:)
v = 2 * v
def __rmul__(self, scalar):  # self: right operand (Vector)
    v = Vector()
    v.x = self.x * scalar
    v.y = self.y * scalar
    return v