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-22 18:57:05 浏览: 17
好的,以下是我对你的问题的回答:
a. Point 类的实现
```python
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
```
b. Point 类的 __str__ 方法实现
```python
class Point:
# 上面的代码相同
def __str__(self):
return "Point({}, {})".format(self.x, self.y)
```
c. Point 类的 __add__ 方法实现
```python
class Point:
# 上面的代码相同
def __add__(self, other):
x = self.x + other.x
y = self.y + other.y
return Point(x, y)
```
d. 计算两个 Point 对象之间的距离
```python
import math
def p2p_distance(p1, p2):
dx = p2.get_x() - p1.get_x()
dy = p2.get_y() - p1.get_y()
return math.sqrt(dx**2 + dy**2)
```
希望这些代码可以帮到你!
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)