运算符重载
不同类型的对象之间的运算符会有不同的解释,如:
print(1 + 2)
print("1" + "2")
#不同的类型用加法会有不同的解释
利用运算符重载实现两个字符串数字相加
class Person(object):
def __init__(self, num):
self.num = num
#运算符重载
def __add__(self, other): #定义加法运算,有加号时自动调用
return Person(self.num + other.num) #返回两个对象里的num相加的值
def __str__(self): #print时自动调用
return "num = " + str(self.num) #要转化成字符串,保证输出内容的格式前后一致
per1 = Person(1)
per2 = Person(2)
print(per1 + per2)#per1 + per2 ==== per1.__add__(per2)
#输出: num = 3
#print(per1.__add__(per2))
print(per1)
#输出:num = 1
print(per2)
#输出:num = 2
常见的运算符重载标识符: