最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年05月26日 10:54:38   作者:student_mei  
這篇文章主要介紹了解決Python運(yùn)算符重載的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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

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

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

此時(shí),若對(duì)自定義類(lèi)中進(jìn)行運(yùn)算符的重載,則可以實(shí)現(xiàn)對(duì)類(lèi)的打印、有理數(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ì)象行為的一種形式,不同類(lèi)的對(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)提高代碼可讀性

在這里插入圖片描述

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

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

(2)*運(yùn)算符除了表示算術(shù)乘法,還可用于列表、元組、字符串這幾個(gè)序列類(lèi)型與整數(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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • matplotlib交互式數(shù)據(jù)光標(biāo)實(shí)現(xiàn)(mplcursors)

    matplotlib交互式數(shù)據(jù)光標(biāo)實(shí)現(xiàn)(mplcursors)

    這篇文章主要介紹了matplotlib交互式數(shù)據(jù)光標(biāo)實(shí)現(xiàn)(mplcursors),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • django的分頁(yè)器Paginator 從django中導(dǎo)入類(lèi)

    django的分頁(yè)器Paginator 從django中導(dǎo)入類(lèi)

    這篇文章主要介紹了django的分頁(yè)器Paginator 從django中導(dǎo)入類(lèi),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 關(guān)于python多進(jìn)程中的常用方法詳解

    關(guān)于python多進(jìn)程中的常用方法詳解

    這篇文章主要介紹了關(guān)于python多進(jìn)程中的常用方法詳解,python中的多線(xiàn)程其實(shí)并不是真正的多線(xiàn)程,如果想要充分地使用多核CPU資源,在python中大部分情況需要使用多進(jìn)程,需要的朋友可以參考下
    2023-07-07
  • python opencv 實(shí)現(xiàn)對(duì)圖像邊緣擴(kuò)充

    python opencv 實(shí)現(xiàn)對(duì)圖像邊緣擴(kuò)充

    今天小編就為大家分享一篇python opencv 實(shí)現(xiàn)對(duì)圖像邊緣擴(kuò)充,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python進(jìn)度條的使用

    Python進(jìn)度條的使用

    在使用Python處理比較耗時(shí)操作的時(shí)候,為了便于觀察處理進(jìn)度,就需要通過(guò)進(jìn)度條將處理情況進(jìn)行可視化展示,本文主要介紹了Python進(jìn)度條的使用,分享給大家,感興趣的可以了解一下
    2021-05-05
  • Python使用爬蟲(chóng)猜密碼

    Python使用爬蟲(chóng)猜密碼

    我們可以通過(guò)python 來(lái)實(shí)現(xiàn)這樣一個(gè)簡(jiǎn)單的爬蟲(chóng)猜密碼功能。下面就看看如何使用python來(lái)實(shí)現(xiàn)這樣一個(gè)功能,對(duì)python爬蟲(chóng)猜密碼相關(guān)知識(shí)感興趣的朋友參考下吧
    2016-02-02
  • Python用字典統(tǒng)計(jì)CSV數(shù)據(jù)的實(shí)現(xiàn)示例

    Python用字典統(tǒng)計(jì)CSV數(shù)據(jù)的實(shí)現(xiàn)示例

    python提供了許多處理CSV文件的工具,其中字典是一個(gè)非常高效的數(shù)據(jù)結(jié)構(gòu),本文主要介紹了Python用字典統(tǒng)計(jì)CSV數(shù)據(jù)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Pycharm打開(kāi)已有項(xiàng)目配置python環(huán)境的方法

    Pycharm打開(kāi)已有項(xiàng)目配置python環(huán)境的方法

    這篇文章主要介紹了Pycharm打開(kāi)已有項(xiàng)目配置python環(huán)境的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Python Flask基礎(chǔ)到登錄功能的實(shí)現(xiàn)代碼

    Python Flask基礎(chǔ)到登錄功能的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python Flask基礎(chǔ)到登錄功能的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Python偽隨機(jī)數(shù)模塊random詳解

    Python偽隨機(jī)數(shù)模塊random詳解

    這篇文章主要為大家詳細(xì)介紹了Python偽隨機(jī)數(shù)模塊random,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03

最新評(píng)論

封丘县| 常宁市| 哈密市| 横峰县| 林芝县| 龙川县| 洛浦县| 葵青区| 波密县| 疏勒县| 手机| 昌宁县| 东乌珠穆沁旗| 盐津县| 仁怀市| 微博| 兴化市| 云浮市| 衡南县| 鲁山县| 威海市| 武城县| 庆安县| 澜沧| 收藏| 蓝田县| 新龙县| 东平县| 承德市| 新乐市| 石嘴山市| 贺兰县| 平舆县| 河曲县| 镇远县| 启东市| 叶城县| 水富县| 奉贤区| 裕民县| 卢湾区|