python魔法方法之算术运算
__add__(self,other)
x + y
class Test:
def __init__(self, num):
self.num = num
def __add__(self, other):
res = self.num + other.num
return res
a = Test(10)
b = Test(20)
print(a + b) # 30
方法的理解是当print()的时候两个数进行的算术运算是什么符号就去找对应的魔法方法,然后将两个值分别传给self
和other
,接着返回魔法方法返回的值
__sub__(self,other)
x-y
class Test:
def __init__(self, num):
self.num = num
def __sub__(self, other):
res = self.num - other
return res
a = Test(10)
print(a - 20) # -10
__mul__(self,other)
x*y
class Test:
def __init__(self, num):
self.num = num
def __mul__(self, other):
res = self.num * other.num
return res
a = Test(10)
b = Test(20)
print(a * b) # 200
__truediv__(self, other)
x/y
class Test:
def __init__(self, num):
self.num = num
def __truediv__(self, other):
res = self.num / other
return res
a = Test(10)
print(a / 20) # 0.5
__floordiv__(self, other)
x//y