定义一个三维向量类,并定义相应的特殊方法实现两个该类对象之间的加、减运算(要求支持运算符+、-),实现该类对象与标量的乘、除运算(要求支持运算符*、/),以及向量长度的计算(要求使用属性实现)。
时间: 2023-06-01 16:07:07 浏览: 142
好的,我可以回答你的问题。以下是一个三维向量类的示例代码,实现了你提到的要求:
```
class Vector3:
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
def __add__(self, other):
return Vector3(self.x + other.x, self.y + other.y, self.z + other.z)
def __sub__(self, other):
return Vector3(self.x - other.x, self.y - other.y, self.z - other.z)
def __mul__(self, scalar):
return Vector3(self.x * scalar, self.y * scalar, self.z * scalar)
def __truediv__(self, scalar):
return Vector3(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
```
使用示例:
```
v1 = Vector3(1, 2, 3)
v2 = Vector3(4, 5, 6)
v3 = v1 + v2 # (5, 7, 9)
v4 = v1 - v2 # (-3, -3, -3)
v5 = v1 * 2 # (2, 4, 6)
v6 = v2 / 2 # (2, 2.5, 3)
len_v1 = v1.length # 3.74...
```
阅读全文