欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決Python運算符重載的問題

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

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

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

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

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

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

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)

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

print(a,b,a>b)

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

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

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

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

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

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

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

在這里插入圖片描述

算數(shù)運算符

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

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

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

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

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

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django  ORM 練習(xí)題及答案

    Django ORM 練習(xí)題及答案

    這篇文章主要介紹了Django ORM 練習(xí)題及答案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 快速解決pymongo操作mongodb的時區(qū)問題

    快速解決pymongo操作mongodb的時區(qū)問題

    這篇文章主要介紹了快速解決pymongo操作mongodb的時區(qū)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Python logging自定義字段輸出及打印顏色

    Python logging自定義字段輸出及打印顏色

    這篇文章主要介紹了Python logging自定義字段輸出及打印顏色,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • python實現(xiàn)雙人五子棋(終端版)

    python實現(xiàn)雙人五子棋(終端版)

    這篇文章主要為大家詳細介紹了python實現(xiàn)終端版的雙人五子棋,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 100?個?Python?小例子(練習(xí)題四)

    100?個?Python?小例子(練習(xí)題四)

    這篇文章主要給大家分享100?個?Python?小例子,前文分享了一二三,本文的四十最后一篇了,這篇就把100道python小練習(xí)全分享完了,感興趣的小伙伴也可以去練習(xí)前幾期內(nèi)容,洗碗給這幾篇文章給你的學(xué)習(xí)帶來幫助
    2022-01-01
  • python實現(xiàn)WebP格式轉(zhuǎn)成JPG、PNG和JPEG的方法

    python實現(xiàn)WebP格式轉(zhuǎn)成JPG、PNG和JPEG的方法

    平時在網(wǎng)上搜索圖片,另存為時常常遇到 WebP 格式,而非常見的 JPG、PNG、JPEG 格式,所以以此文記錄一下WebP的讀取和轉(zhuǎn)換方法,希望對大家有所幫助,需要的朋友可以參考下
    2024-06-06
  • python列表[list]和元組(tuple)詳情

    python列表[list]和元組(tuple)詳情

    這篇文章主要介紹了python列表[list]和元組(tuple)詳情,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Python的Django框架中自定義模版標簽的示例

    Python的Django框架中自定義模版標簽的示例

    這篇文章主要介紹了Python的Django框架中自定義模版標簽的示例,標簽的用處比過濾器更多,需要的朋友可以參考下
    2015-07-07
  • 在Python的Django框架中調(diào)用方法和處理無效變量

    在Python的Django框架中調(diào)用方法和處理無效變量

    這篇文章主要介紹了在Python的Django框架中調(diào)用方法和處理無效變量的方法,是Django編程中的基礎(chǔ)操作,需要的朋友可以參考下
    2015-07-07
  • Django-silk性能測試工具安裝及使用解析

    Django-silk性能測試工具安裝及使用解析

    這篇文章主要介紹了Django-silk性能測試工具安裝及使用解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11

最新評論