a.设计一个 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-02-15 08:01:41 浏览: 71
Java 编写Point类,构造方法,计算两个点之间的距离,键盘输入两个点,格式以“,”隔开,如:1,1即为(1,1)点。
5星 · 资源好评率100%
以下是实现上述要求的 Python 代码:
```python
import math
class Point:
def __init__(self, x, y):
self._x = x
self._y = y
def get_x(self):
return self._x
def set_x(self, x):
self._x = x
def get_y(self):
return self._y
def set_y(self, y):
self._y = y
def __str__(self):
return f"Point({self._x}, {self._y})"
def __add__(self, other):
x = self._x + other.get_x()
y = self._y + other.get_y()
return Point(x, y)
def p2p_distance(p1, p2):
dx = p1.get_x() - p2.get_x()
dy = p1.get_y() - p2.get_y()
return math.sqrt(dx**2 + dy**2)
```
使用示例:
```python
p1 = Point(2, 2)
p2 = Point(3, 4)
print(p1) # 输出:Point(2, 2)
print(p1 + p2) # 输出:Point(5, 6)
print(p2p_distance(p1, p2)) # 输出:2.23606797749979
```
阅读全文