您好,登錄后才能下訂單哦!
小編給大家分享一下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è)資訊頻道!
免責(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)容。