定义Vector矢量类,对运算符重载,实现矢量的相加和相减。
时间: 2024-04-14 20:30:25 浏览: 133
好的,以下是定义的Vector矢量类,并对运算符进行重载,实现矢量的相加和相减的示例代码:
```python
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
if isinstance(other, Vector):
return Vector(self.x + other.x, self.y + other.y)
else:
raise TypeError("Unsupported operand type for +")
def __sub__(self, other):
if isinstance(other, Vector):
return Vector(self.x - other.x, self.y - other.y)
else:
raise TypeError("Unsupported operand type for -")
def __str__(self):
return f"({self.x}, {self.y})"
# 创建两个Vector对象
v1 = Vector(1, 2)
v2 = Vector(3, 4)
# 执行矢量相加和相减操作
v3 = v1 + v2
v4 = v1 - v2
# 输出结果
print(v3) # 输出 (4, 6)
print(v4) # 输出 (-2, -2)
```
在上述代码中,我们定义了一个Vector矢量类,其中包含了x和y两个属性。我们使用`__add__`方法重载了`+`运算符,使得两个Vector对象可以相加。同样,我们使用`__sub__`方法重载了`-`运算符,使得两个Vector对象可以相减。当进行矢量相加和相减操作时,会返回一个新的Vector对象。我们还使用`__str__`方法定义了对Vector对象的字符串表示,以方便输出结果。
在示例中,我们创建了两个Vector对象v1和v2,并执行了矢量相加和相减操作,将结果分别赋值给v3和v4。最后,我们输出了v3和v4的结果。
输出结果为:
```
(4, 6)
(-2, -2)
```
注意,我们在重载运算符时使用了`isinstance`函数来检查被操作数的类型,确保只有两个Vector对象可以进行相加和相减操作。如果被操作数的类型不是Vector对象,则抛出`TypeError`异常。
阅读全文