运算符的重载【掌握】

overload

重载:两个类,如果在 一个类中重新实现了一个方法

对专有的方法进行重载

代码演示:

#+普通用法
#数字和数字相加:数学运算
print(24 + 49)
#字符串和字符串相加:拼接
print("fdh" + "ghaur")

#print("ahfg" + 16)  #ypeError: must be str, not int
#不同的数据类型的加法操作会有不同的解释

class Person(object):
    def __init__(self,num):
        self.num = num

    def __str__(self):
        return "num = " + str(self.num)

    #运算符重载
    #在程序中,但凡涉及到+运算,在底层都会调用__add__,
    def __add__(self, other):
        return Person(self.num + other.num)

p1 = Person(23)
p2 = Person(12)


print(p1,p2)

#int+int = int   str+str = str   person+person = person
p3 = p1 + p2
print(p3)
print(p3.__str__())   #35
print(p1.__add__(p2))   #p1 + p2 =====>p1.__add__(p2)

"""
def text(str1,num1):
    return  str1 + str(num1)

text("abc" + 18)
"""

#使用场景:当系统的某些功能满足不了需求时,就可以在类中进行重载,函数的实现体部分完全可以自定义

 

posted @ 2018-11-22 21:34  SameSmile  阅读(190)  评论(0编辑  收藏  举报