python __sub__
时间: 2024-09-11 19:00:57 浏览: 99
python_-re.rar_python_python xml
`__sub__` 是 Python 中的一个魔术方法,也称为特殊方法或双下方法。它定义了对象在被减号 `-` 运算符操作时的行为。当你创建了一个自定义类,并想让它能够支持减法运算,你需要在类中实现 `__sub__` 方法。
这个方法接收两个参数,第一个是减法运算符左边的实例(我们称之为 `self`),第二个是减法运算符右边的实例(我们称之为 `other`)。`__sub__` 方法需要返回一个新的实例,这个实例代表了减法的结果。
例如,如果你有一个表示时间间隔的类 `TimeSpan`,你可能会这样实现 `__sub__` 方法:
```python
class TimeSpan:
def __init__(self, hours, minutes):
self.hours = hours
self.minutes = minutes
def __sub__(self, other):
total_minutes = (self.hours * 60 + self.minutes) - (other.hours * 60 + other.minutes)
if total_minutes < 0:
total_minutes = 0
hours = total_minutes // 60
minutes = total_minutes % 60
return TimeSpan(hours, minutes)
# 使用例子
time1 = TimeSpan(3, 30) # 表示 3 小时 30 分钟
time2 = TimeSpan(2, 15) # 表示 2 小时 15 分钟
result = time1 - time2 # 执行减法操作
print(result.hours, result.minutes) # 输出结果应该是 1 小时 15 分钟
```
通过实现 `__sub__` 方法,`TimeSpan` 类的实例现在可以使用 `-` 运算符进行相互减法操作。
阅读全文