声明 Point 类,有坐标 _ x,_ y 两个成员变量;对Point 类重载“++”(自增)、“--”(自减)运算符,实现对坐标值的改变。
时间: 2024-09-25 22:08:54 浏览: 39
对类Point重载(自增,自减)运算符
在Python中,你可以创建一个名为`Point`的类,其中包含私有的`_x`和`_y`属性表示点的坐标。然后,为了实现自增(`++`)和自减(`--`)运算符的重载,你需要覆盖这两个特殊的算术运算方法`__iadd__`和`__isub__`。这里是一个简单的示例:
```python
class Point:
def __init__(self, x, y):
self._x = x
self._y = y
# 自增运算符重载(加1)
def __iadd__(self, other):
if isinstance(other, int) or isinstance(other, float):
self._x += other
self._y += other
else:
raise TypeError("Unsupported operand type for addition with Point")
return self
# 自减运算符重载(减1)
def __isub__(self, other):
if isinstance(other, int) or isinstance(other, float):
self._x -= other
self._y -= other
else:
raise TypeError("Unsupported operand type for subtraction with Point")
return self
# 示例用法
p = Point(0, 0)
p += 1 # 等同于 p = p + 1, 即 (0, 0) -> (1, 1)
print(p) # 输出: Point(x=1, y=1)
p -= 2 # 等同于 p = p - 2, 即 (1, 1) -> (-1, -1)
print(p) # 输出: Point(x=-1, y=-1)
```
阅读全文