Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,它们是面向对象的 Python 的一切。它们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了某一个魔法方法,那么这个方法就会在特殊的情况下自动被 Python 所调用。
功能
定义减法的行为。
参数
self 表示减号左边的对象,other 表示减号右边的对象。
返回值
一般返回一个对象或一个值。
示例
class SubTest(object):
def __init__(self, age):
self.age = age
def __sub__(self, other):
print('call sub magic function')
return SubTest(self.age - other.age)
num_1 = SubTest(18)
num_2 = SubTest(10)
print(f'sub result is:{(num_1 - num_2).age}')
执行示例代码,输出结果如下:
call sub magic function
sub result is:8