亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

解決Python運算符重載的問題

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

python進行有理數運算時,希望用運算符(+ - * /)描述計算過程。

只是用來寫出更加自然的計算表達式。為此,python為所有算數運算符規定了特殊方法名。其中所有特殊的名字都以兩個下劃線開始,并以兩個下劃線結束,即:

當在Python中輸入“a+b”時,程序發現使用了“+”運算符,因此就會調用“__add__”方法。

此時,若對自定義類中進行運算符的重載,則可以實現對類的打印、有理數運算等等。

其中,一個問題應當注意,如以下代碼

class Size: def __init__(self, value):self._value = value def value(self):return self._value def __lt__(self, another): #由于 < 是一個二元運算符,因此會有 anothoer這一項的存在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)

進行調試時,盡管沒有對“>”運算符(對應的魔法方法是“__gt”)進行重載,但是運算到

print(a,b,a>b)

時,程序并不會報錯,且仍然會調用重載后的'__lt__'。我個人理解是因為Python自動將“a>b”看成是“b<a”。若此時重載了“__gt__”,則程序不會去調用“__lt__”了。

補充:python中的運算符與表達式

Python是面向對象的編程語言,在Python中一切都是對象。對象由數據和行為兩部分組成,而行為主要通過方法來實現,通過一些特殊方法的重寫,可以實現運算符重載。

運算符也是表現對象行為的一種形式,不同類的對象支持的運算符有所不同,同一種運算符作用于不同的對象時也可能會表現出不同的行為,這正是“多態”的體現。

在Python中,單個常量或變量可以看作最簡單的表達式,使用除賦值運算符之外的其他任意運算符和函數調用連接的式子也屬于表達式

運算符優先級遵循的規則為:算術運算符優先級最高,其次是位運算符、成員測試運算符、關系運算符、邏輯運算符等,算術運算符遵循“先乘除,后加減”的基本運算原則。

雖然Python運算符有一套嚴格的優先級規則,但是強烈建議在編寫復雜表達式時使用圓括號來明確說明其中的邏輯來提高代碼可讀性

解決Python運算符重載的問題

算數運算符

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

(2)*運算符除了表示算術乘法,還可用于列表、元組、字符串這幾個序列類型與整數的乘法,表示序列元素的重復,生成新的序列對象。字典和集合不支持與整數的相乘,因為其中的元素是不允許重復的。

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

(4)%運算符可以用于整數或實數的求余數運算,還可以用于字符串格式化,但是這種用法并不推薦。

(5)**運算符表示冪乘

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 91在线|亚洲 | 国产三级日产三级 | 57pao国产成视频一永久免费 | 欧美小younv 欧美性xxxxx极品老少 | 成人午夜影视全部免费看 | 操操综合网 | 日本特黄高清免费大片爽 | 成人国产精品视频 | 成人宗合网 | 国产超级碰碰在线公开视频 | 国产成+人+综合+亚洲 欧美 | 国产一区二区在线观看免费 | 黄色网网址 | 国产麻豆精品 | 国产精品无码久久综合网 | 夜色www国产精品资源站 | 亚洲欧洲一区二区三区 | 成熟亚洲妇女毛茸茸的性画廊 | 欧美视频免费在线播放 | 在线观看亚洲国产 | 免费亚洲一区 | 久久99国产精一区二区三区! | 在线观看激情偷拍视频 | 欧美成人手机视频 | 国产a级精品特黄毛片 | 善良的翁熄日本2 | 欧美日韩不卡视频一区二区三区 | 黄色一级大片儿 | 国产精品亚洲欧美一区麻豆 | 国产精品第一页第一页 | 国产一区二区三区在线电影 | 亚洲欧美日韩一级特黄在线 | 精品国产高清自在线一区二区三区 | 伊人婷婷色 | 免费一级a毛片在线播出 | 在线视频 一区二区 | 黄色毛片视频网站 | 一区二区不卡在线观看 | 国产日本在线视频 | 91精品国产色综合久久不卡蜜 | 久久久久久久久综合影视网 |