符6. 请修改下面的 Point类, 通过重写相应魔法方法使其支持如下运算符操作:p1+p2,两个点的 x、y坐标分别相加, 返回一个新的 Point对象;p1−p2,两个点的 x、y坐标分别相减, 返回一个新的Point对象
时间: 2024-12-15 21:26:17 浏览: 14
twopoint.rar_twopoint_twopoint怎么渎_红外 校正_红外两点校正_非均匀性校正
5星 · 资源好评率100%
在Python中,我们可以修改`Point`类来支持向量加法和减法的操作。这里假设`Point`类有`x`和`y`属性。首先,我们需要定义`__add__`和`__sub__`这两个特殊的魔法方法(也称为dunder方法),它们对应于"+"和"-"操作符:
```python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
# 魔法方法:用于实现 p1 + p2 的操作
def __add__(self, other):
if not isinstance(other, Point):
raise TypeError("Unsupported operand type for +")
return Point(self.x + other.x, self.y + other.y)
# 魔法方法:用于实现 p1 - p2 的操作
def __sub__(self, other):
if not isinstance(other, Point):
raise TypeError("Unsupported operand type for -")
return Point(self.x - other.x, self.y - other.y)
```
现在,你可以创建`Point`对象并使用"+"和"-"进行运算:
```python
p1 = Point(3, 4)
p2 = Point(1, 2)
# 加法
p_sum = p1 + p2
print(p_sum) # 输出: (4, 6)
# 减法
p_diff = p1 - p2
print(p_diff)
阅读全文