午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

解決Python運(yùn)算符重載的問(wèn)題

瀏覽:47日期:2022-06-18 11:34:16

python進(jìn)行有理數(shù)運(yùn)算時(shí),希望用運(yùn)算符(+ - * /)描述計(jì)算過(guò)程。

只是用來(lái)寫(xiě)出更加自然的計(jì)算表達(dá)式。為此,python為所有算數(shù)運(yùn)算符規(guī)定了特殊方法名。其中所有特殊的名字都以兩個(gè)下劃線開(kāi)始,并以兩個(gè)下劃線結(jié)束,即:

當(dāng)在Python中輸入“a+b”時(shí),程序發(fā)現(xiàn)使用了“+”運(yùn)算符,因此就會(huì)調(diào)用“__add__”方法。

此時(shí),若對(duì)自定義類中進(jìn)行運(yùn)算符的重載,則可以實(shí)現(xiàn)對(duì)類的打印、有理數(shù)運(yùn)算等等。

其中,一個(gè)問(wèn)題應(yīng)當(dāng)注意,如以下代碼

class Size: def __init__(self, value):self._value = value def value(self):return self._value def __lt__(self, another): #由于 < 是一個(gè)二元運(yùn)算符,因此會(huì)有 anothoer這一項(xiàng)的存在cc = self.value() > another.value()return self.value() > another.value() # def __gt__(self, another): # gg = self._value < another.value() # return self._value < another.value() def __eq__(self, another):return self.value() == another.value() def __str__(self):return str(self.value())a=Size(3)b=Size(2)print(a,b,a>b)

進(jìn)行調(diào)試時(shí),盡管沒(méi)有對(duì)“>”運(yùn)算符(對(duì)應(yīng)的魔法方法是“__gt”)進(jìn)行重載,但是運(yùn)算到

print(a,b,a>b)

時(shí),程序并不會(huì)報(bào)錯(cuò),且仍然會(huì)調(diào)用重載后的'__lt__'。我個(gè)人理解是因?yàn)镻ython自動(dòng)將“a>b”看成是“b<a”。若此時(shí)重載了“__gt__”,則程序不會(huì)去調(diào)用“__lt__”了。

補(bǔ)充:python中的運(yùn)算符與表達(dá)式

Python是面向?qū)ο蟮木幊陶Z(yǔ)言,在Python中一切都是對(duì)象。對(duì)象由數(shù)據(jù)和行為兩部分組成,而行為主要通過(guò)方法來(lái)實(shí)現(xiàn),通過(guò)一些特殊方法的重寫(xiě),可以實(shí)現(xiàn)運(yùn)算符重載。

運(yùn)算符也是表現(xiàn)對(duì)象行為的一種形式,不同類的對(duì)象支持的運(yùn)算符有所不同,同一種運(yùn)算符作用于不同的對(duì)象時(shí)也可能會(huì)表現(xiàn)出不同的行為,這正是“多態(tài)”的體現(xiàn)。

在Python中,單個(gè)常量或變量可以看作最簡(jiǎn)單的表達(dá)式,使用除賦值運(yùn)算符之外的其他任意運(yùn)算符和函數(shù)調(diào)用連接的式子也屬于表達(dá)式

運(yùn)算符優(yōu)先級(jí)遵循的規(guī)則為:算術(shù)運(yùn)算符優(yōu)先級(jí)最高,其次是位運(yùn)算符、成員測(cè)試運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符等,算術(shù)運(yùn)算符遵循“先乘除,后加減”的基本運(yùn)算原則。

雖然Python運(yùn)算符有一套嚴(yán)格的優(yōu)先級(jí)規(guī)則,但是強(qiáng)烈建議在編寫(xiě)復(fù)雜表達(dá)式時(shí)使用圓括號(hào)來(lái)明確說(shuō)明其中的邏輯來(lái)提高代碼可讀性

解決Python運(yùn)算符重載的問(wèn)題

算數(shù)運(yùn)算符

(1)+運(yùn)算符除了用于算術(shù)加法以外,還可以用于列表、元組、字符串的連接,但不支持不同類型的對(duì)象之間相加或連接。

(2)*運(yùn)算符除了表示算術(shù)乘法,還可用于列表、元組、字符串這幾個(gè)序列類型與整數(shù)的乘法,表示序列元素的重復(fù),生成新的序列對(duì)象。字典和集合不支持與整數(shù)的相乘,因?yàn)槠渲械脑厥遣辉试S重復(fù)的。

(3)運(yùn)算符/和//在Python中分別表示算術(shù)除法和算術(shù)求整商(floor division)

(4)%運(yùn)算符可以用于整數(shù)或?qū)崝?shù)的求余數(shù)運(yùn)算,還可以用于字符串格式化,但是這種用法并不推薦。

(5)**運(yùn)算符表示冪乘

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 在线观看视频你懂的 | 性欧美日韩 | 在线观看欧美日韩视频 | 一区二区视频免费在线观看 | 免费在线观看亚洲 | 国产真人真事毛片视频 | 欧美大片免费 | 伊人中文在线 | 亚洲在线天堂 | 国产一区二区三区高清 | 久草福利资源在线 | 西西特级444大胆高清张悠雨 | 国产精品s色| 黄色在线网 | 亚日韩在线 | 老司机福利精品 | 日韩精品大片 | 色网站在线 | 国产第1页 | 天天干视频在线观看 | 精品视频久久 | 欧美亚洲激情 | 成人午夜影院在线观看 | 色婷婷视频在线观看 | 日韩欧美综合一区 | 久久久精品久久久 | 亚洲精品国产精品国自产网站 | 日韩精品区 | 美女网站视频色 | 欧美精品h | 青青在线精品 | 五月婷网站 | 国产伦精品一区二区三区在线 | 午夜影院体验区 | 久久精品视频一区二区 | 天堂视频免费在线观看 | 久久国产影院 | 欧美一区二区三区婷婷 | 亚洲男人皇宫 | 久久视频| 五月天婷婷激情网 |