python 设计并实现一个平面向量类Vector,包含私有数据成员__x、__y,提供公开方法add()、sub()、mul()实现向量运算,以及show()方法查看向量值。添加只读属性length计算并返回向量长度。编写程序测试类的各项功能。
时间: 2024-10-17 19:11:28 浏览: 22
EOF.zip_EOF Python_EOF方法_eof_eof分解python_python实现eof
5星 · 资源好评率100%
在Python中,你可以通过创建一个名为`Vector`的类来实现这个需求。首先,你需要定义两个私有变量`__x`和`__y`来存储向量的x和y坐标。然后,你可以创建一些公共方法来进行向量的加法、减法、乘法运算,以及展示向量值和计算长度。
下面是一个简单的实现示例:
```python
class Vector:
def __init__(self, x=0, y=0):
self.__x = x
self.__y = y
# 公开方法:加法
def add(self, other_vector):
new_x = self.__x + other_vector.__x
new_y = self.__y + other_vector.__y
return Vector(new_x, new_y)
# 公开方法:减法
def sub(self, other_vector):
new_x = self.__x - other_vector.__x
new_y = self.__y - other_vector.__y
return Vector(new_x, new_y)
# 公开方法:乘法(这里假设是点乘)
def mul(self, scalar):
new_x = self.__x * scalar
new_y = self.__y * scalar
return Vector(new_x, new_y)
# 公开方法:显示向量值
def show(self):
print(f"向量 ({self.__x}, {self.__y})")
# 只读属性:计算并返回向量长度(欧几里得距离)
@property
def length(self):
return (self.__x**2 + self.__y**2) ** 0.5
# 测试类
v1 = Vector(1, 2)
v2 = Vector(3, 4)
print("v1:", v1.show())
print("v2:", v2.show())
# 向量加法
result_add = v1.add(v2)
print("v1 + v2 =", result_add.show())
result_add.length # 输出新向量的长度
# 向量减法
result_sub = v1.sub(v2)
print("v1 - v2 =", result_sub.show())
result_sub.length # 输出新向量的长度
# 点乘
scalar = 2
result_mul = v1.mul(scalar)
print("v1 * 2 =", result_mul.show())
result_mul.length # 输出点乘后的向量长度
```
在这个例子中,我们创建了一个向量,并展示了如何通过不同的方法进行操作。每个方法都对应着向量的一个基本数学性质。
阅读全文