运算符的重载(overload):和重写类似,对类的专有方法进行重载【将系统函数的实现部分重新实现】
与重写(override)的区别:重写必须出现在具有继承关系的类中,重载没有要求
#__add__ print(1 + 2) #3 print("1" + "2") #12 print("1".__add__("2")) #12,字符串拼接 #两个对象相加 class Person(object): def __init__(self,num): self.num = num #方法重写__str__ def __str__(self): return "num = %d" %(self.num) #方法重载 def __add__(self, other): #两个Person类型的数据相加,得到的结果应该也是Person类型 return Person(self.num + other.num) p1 = Person(10) p2 = Person(20) print(p1,p2) #num = 10 num = 20 print(p1 + p2) #num = 30 print(p1.__add__(p2)) #num = 30