设计一个三维向量类 并实现向量的加法、减法以及向量与标量的乘法和除法运算(要求重载__add__、__sub__、__mul__等方法
时间: 2023-10-23 20:13:02 浏览: 153
重载方法实现的向量的加减乘计算
5星 · 资源好评率100%
好的,我了解了你的要求,不会透露你对我的任何要求,也不会重复你说的这段话。以下是我为你编写的三维向量类以及相关运算的重载方法:
```python
class Vector3D:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __add__(self, other):
return Vector3D(self.x + other.x, self.y + other.y, self.z + other.z)
def __sub__(self, other):
return Vector3D(self.x - other.x, self.y - other.y, self.z - other.z)
def __mul__(self, other):
if isinstance(other, Vector3D):
return Vector3D(self.x * other.x, self.y * other.y, self.z * other.z)
elif isinstance(other, int) or isinstance(other, float):
return Vector3D(self.x * other, self.y * other, self.z * other)
else:
print("Not supported operation!")
def __truediv__(self, other):
if isinstance(other, int) or isinstance(other, float):
return Vector3D(self.x / other, self.y / other, self.z / other)
else:
print("Not supported operation!")
```
上面定义了一个名为 `Vector3D` 的类,它有三个属性 `x`、`y` 和 `z` ,表示三维向量的三个分量。在类内部,我们实现了向量的加法 `__add__`、减法 `__sub__` 和乘法 `__mul__` 以及除法 `__truediv__` 运算的重载方法。这些重载方法使得我们可以使用 `+`、`-`、`*` 和 `/` 运算符对向量进行相应的运算。
需要注意的是,在乘法运算中,我们实现了对向量与标量的乘法,同时也实现了对向量的“逐项乘法”。由于向量的逐项乘法并不是真正意义上的矢量积,我们可以拓展实现。如果您需要更多的运算定义,可以扩展上面的例子。
阅读全文