.设计一个 Point 类(点类),它包含数据成员有横坐标 x 和纵坐标 y;成员 方法包括构造方法,获取成员的方法有 get_x 和 get_y,设置 x 和 y 的方法 set_x 和 set_y。 b.为(a)中 Point 类设计__str__特殊方法程序,以实现当 p1 为 Point(x1, y1) 2 / 2 的实例化对象时,print(p1)将输出形如:Point(x1, y1) 的格式,其中,x1, y1 为数字。 c.为(a)中 Point 类设计__add __运算符重载特殊方法程序,以实现当 p1 和 p2 为 Point(x1, y1) 和 Point(x2, y2) 的 实 例 化 对 象 时 , p1+p2 将 得 到 Point(x1+x2,y1+y2)。 d.设计一个函数 p2p_distance(p1,p2),其中 p1 和 p2 为 Point 对象,函数返 回两点的距离
时间: 2024-03-16 21:43:36 浏览: 62
编写一个程序,设计一个点类Point,求两个点之间的距离。
好的,下面是更新后的 Point 类的设计,包括 __str__ 和 __add__ 特殊方法,以及 p2p_distance 函数:
```python
import math
class Point:
def __init__(self, x, y):
self._x = x
self._y = y
def get_x(self):
return self._x
def get_y(self):
return self._y
def set_x(self, x):
self._x = x
def set_y(self, y):
self._y = y
def __str__(self):
return "Point({}, {})".format(self._x, self._y)
def __add__(self, other):
x = self._x + other._x
y = self._y + other._y
return Point(x, y)
def p2p_distance(p1, p2):
return math.sqrt((p1.get_x() - p2.get_x()) ** 2 + (p1.get_y() - p2.get_y()) ** 2)
```
在这个更新后的类中,我们添加了 __str__ 特殊方法,以实现 print(p1) 的输出格式。同时,我们还添加了 __add__ 特殊方法,以实现两个 Point 对象的加法运算。注意,这里我们使用了其他 Point 对象的私有数据成员,因此需要使用 `_` 来表示。
最后,我们定义了一个 p2p_distance 函数,以实现计算两个 Point 对象之间的距离。该函数使用了 math 模块中的 sqrt 函数,用于计算平方根。
阅读全文