溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python運(yùn)算符重載是什么意思

發(fā)布時(shí)間:2020-07-16 14:14:50 來(lái)源:億速云 閱讀:362 作者:清晨 欄目:編程語(yǔ)言

小編給大家分享一下Python運(yùn)算符重載是什么意思,相信大部分人都還不怎么了解,因此分享這邊文章給大家學(xué)習(xí),希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學(xué)習(xí)方法吧!

什么叫Python運(yùn)算符重載

Python中每個(gè)數(shù)據(jù)類型都有其獨(dú)特的操作方法,例如列表類型支持直接做加法操作實(shí)現(xiàn)添加元素的功能,字符串類型支持直接做加法實(shí)現(xiàn)字符串的拼接功能,也就是說(shuō),同樣的運(yùn)算符對(duì)于不同序列類型的意義是不一樣的。

推薦學(xué)習(xí)《Python教程》。

在 Python 內(nèi)部,每種序列類型都是 Python 的一個(gè)類,例如列表是 list 類,字典是 dict 類等,這些序列類的內(nèi)部使用了一個(gè)叫作“重載運(yùn)算符”的技術(shù)來(lái)實(shí)現(xiàn)不同運(yùn)算符所對(duì)應(yīng)的操作。

所謂重載運(yùn)算符,指的是在類中定義并實(shí)現(xiàn)一個(gè)與運(yùn)算符對(duì)應(yīng)的處理方法,這樣當(dāng)類對(duì)象在進(jìn)行運(yùn)算符操作時(shí),系統(tǒng)就會(huì)調(diào)用類中相應(yīng)的方法來(lái)處理。

重載運(yùn)算符示例:

class MyClass: #自定義一個(gè)類
    def __init__(self, name , age): #定義該類的初始化函數(shù)
        self.name = name #將傳入的參數(shù)值賦值給成員交量
        self.age = age
    def __str__(self): #用于將值轉(zhuǎn)化為字符串形式,等同于 str(obj)
        return "name:"+self.name+";age:"+str(self.age)
   
    __repr__ = __str__ #轉(zhuǎn)化為供解釋器讀取的形式
   
    def __lt__(self, record): #重載 self<record 運(yùn)算符
        if self.age < record.age:
            return True
        else:
            return False
   
    def __add__(self, record): #重載 + 號(hào)運(yùn)算符
        return MyClass(self.name, self.age+record.age)
myc = MyClass("Anna", 42) #實(shí)例化一個(gè)對(duì)象 Anna,并為其初始化
mycl = MyClass("Gary", 23) #實(shí)例化一個(gè)對(duì)象 Gary,并為其初始化
print(repr(myc)) #格式化對(duì)象 myc,
print(myc) #解釋器讀取對(duì)象 myc,調(diào)用 repr
print (str (myc)) #格式化對(duì)象 myc ,輸出"name:Anna;age:42"
print(myc < mycl) #比較 myc<mycl 的結(jié)果,輸出 False
print (myc+mycl) #進(jìn)行兩個(gè) MyClass 對(duì)象的相加運(yùn)算,輸出 "name:Anna;age:65"

結(jié)果為:

name:Anna;age:42
name:Anna;age:42
name:Anna;age:42
False
name:Anna;age:65

以上是Python運(yùn)算符重載是什么意思的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI