实现一个二维空间点对象的 Poin2D 类,要求该类包含用于返回点对象的位 置、到其他点之间距离、支持点移动、判断两点之间是否相等的基本功能; 在 Point2D 类的基础上,采用继承方式定义三维空间 Point3D 类,并实现 Point2D 类中所有内置功能函数。
时间: 2024-04-12 11:26:42 浏览: 131
好的,我将为您实现一个二维空间点对象的 Point2D 类,并在此基础上定义一个三维空间 Point3D 类来继承 Point2D 类的功能。请看下面的代码实现:
```python
import math
class Point2D:
def __init__(self, x, y):
self.x = x
self.y = y
def get_position(self):
return self.x, self.y
def distance_to(self, other_point):
dx = other_point.x - self.x
dy = other_point.y - self.y
return math.sqrt(dx ** 2 + dy ** 2)
def move(self, dx, dy):
self.x += dx
self.y += dy
def __eq__(self, other_point):
return self.x == other_point.x and self.y == other_point.y
class Point3D(Point2D):
def __init__(self, x, y, z):
super().__init__(x, y)
self.z = z
def get_position(self):
return self.x, self.y, self.z
def distance_to(self, other_point):
dx = other_point.x - self.x
dy = other_point.y - self.y
dz = other_point.z - self.z
return math.sqrt(dx ** 2 + dy ** 2 + dz ** 2)
```
上述代码定义了一个 Point2D 类,它具有位置获取、计算到其他点的距离、移动和判断两点是否相等的基本功能。然后,Point3D 类继承了 Point2D 类,并重写了获取位置和计算距离的方法,使其适用于三维空间。
您可以使用以下示例代码来测试这些类的功能:
```python
# 创建二维点对象并测试基本功能
p1 = Point2D(1, 2)
p2 = Point2D(3, 4)
print(p1.get_position()) # 输出:(1, 2)
print(p1.distance_to(p2)) # 输出:2.8284271247461903
p1.move(2, 3)
print(p1.get_position()) # 输出:(3, 5)
print(p1 == p2) # 输出:False
# 创建三维点对象并测试基本功能
p3 = Point3D(1, 2, 3)
p4 = Point3D(4, 5, 6)
print(p3.get_position()) # 输出:(1, 2, 3)
print(p3.distance_to(p4)) # 输出:5.196152422706632
p3.move(2, 3)
print(p3.get_position()) # 输出:(3, 5, 3)
print(p3 == p4) # 输出:False
```
希望这个实现符合您的需求!如果还有其他问题,请随时提问。
阅读全文