自定义类模拟三维向量及其运算。包括向量的加法、减法以及向量与标量的乘法和除法,并使用@property查看向量长度。
时间: 2024-05-14 11:13:36 浏览: 55
用Python自定义三维向量类,实现加减乘除等运算
可以的,这是一个关于自定义类模拟三维向量及其运算的问题。以下是代码示例:
```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, scalar):
return Vector3D(self.x * scalar, self.y * scalar, self.z * scalar)
def __truediv__(self, scalar):
return Vector3D(self.x / scalar, self.y / scalar, self.z / scalar)
@property
def length(self):
return (self.x ** 2 + self.y ** 2 + self.z ** 2) ** 0.5
```
在这个类中,我们定义了向量的三个分量 x、y 和 z,并且定义了向量的加法、减法、标量乘法和标量除法。此外,我们还使用@property装饰器定义了一个名为length的属性,可以查看向量的长度。
如果你想测试这个类的话,可以这样做:
```python
v1 = Vector3D(1, 2, 3)
v2 = Vector3D(4, 5, 6)
print("v1 + v2 =", v1 + v2)
print("v1 - v2 =", v1 - v2)
print("v1 * 2 =", v1 * 2)
print("v2 / 2 =", v2 / 2)
print("length of v1 =", v1.length)
print("length of v2 =", v2.length)
```
这个类模拟了三维向量的基本运算,可以方便地进行向量相关的计算。
阅读全文