一般来说,一个类能够计算,是因为内置了add(加),sub(减)等方法
当调用+,-的时候,其实调用的就是add,sub方法
当我们相对类的属性进行运算时,通常会这样:
比如我们定义一个类
class Programer(object):
def __init__(self, name, age):
self.name = name
self.age = age
实例化两个对象
a = Programer("renyi", 25)
b = Programer("huanghuan", 26)
这里我们需要对两个对象的年龄进行相加会这样
print(a.age + b.age)
但是呢,如果我们在类里定义了add等方法:像这样
class Programer(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __eq__(self, other):
if isinstance(other, Programer):
if self.age == other.age:
return True
else:
return False
else:
raise Exception("The type of object must be Programer")
def __add__(self, other):
if isinstance(other, Programer):
return self.age + other.age
else:
raise Exception("The type of object must be Programer")
def __sub__(self, other):
if isinstance(other, Programer):
return self.age - other.age
else:
raise Exception("The type of object must be Programer")
if __name__ == "__main__":
a = Programer("renyi", 25)
b = Programer("huanghuan", 25)
print(a + b)
print(a == b)
print(a - b)
是的我们可以直接对类进行相加了,其实这个骚操作在实际应用中没有什么作用,但是能加深我们队python面向对象的理解,以及类的一些魔术方法,内置运算符的理解