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

Python實(shí)用小知識(shí)之對(duì)象間的比較

 更新時(shí)間:2021年10月13日 10:28:06   作者:米洛丶  
== 和 is 是 Python 中對(duì)象比較常用的兩種方式,簡(jiǎn)單來(lái)說(shuō),'==' 操作符比較對(duì)象之間的值是否相等,下面這篇文章主要給大家介紹了關(guān)于Python實(shí)用小知識(shí)之對(duì)象間比較的相關(guān)資料,需要的朋友可以參考下

前言

今天就結(jié)合日常生活的例子,給大家講講Python對(duì)象之間的比較。(內(nèi)容不多,小娃兒都能看懂)

場(chǎng)景

米洛今年國(guó)慶節(jié)打算給新家添置一些日用的東西,比如床、四件套等等。為此,他使用了各大電商平臺(tái)的app,但因?yàn)槭切录遥杂行゛pp還沒(méi)有錄入地址。

于是他干脆進(jìn)行了一波整理,在他的收貨地址里面,找尋自己是否添加過(guò)最新的地址。

我們都知道,收貨地址最重要的就是地址+電話了,通過(guò)這個(gè)可以確定一個(gè)人。因?yàn)橛行┯⑿勖琅矚g把姓名寫(xiě)成: 喵星人,吳彥祖這樣的,所以只要確保地址和電話對(duì)得上就行。

那我們就需要比較地址是否有重復(fù)的,這樣就好好管理自己的收貨地址嘛。

代碼里的收貨地址

我們定義一個(gè)Receiver類,里面有name/address/mobile3個(gè)字段:

class Receiver(object):

    def __init__(self, name, addr, mobile):
        self.name = name
        self.addr = addr
        self.mobile = mobile


if __name__ == "__main__":
    r = Receiver("小孟", "梅苑小區(qū)", 13922222222)
    r2 = Receiver("小孟貨", "梅苑小區(qū)", 13922222222)
    print(r == r2)

這樣我們的生活就映射到了代碼之中。由于我們要比較,所以我們這邊new了2個(gè)收貨地址。

我們想要的是,當(dāng)addr和mobile一致的時(shí)候,我們確定這2個(gè)收貨地址相同。

來(lái)看看執(zhí)行效果:

因?yàn)閞和r2是2個(gè)不同的對(duì)象,所以他們是肯定不相等的。

思考: 如果是單例模式的class,r等于r2嗎?

了解__eq__方法

我們知道,在Python里面比較數(shù)字/字符串是否相等,那2個(gè)對(duì)象是否相等。其實(shí)也是可以比較的。這一切都要?dú)w功于__eq__這個(gè)方法。

可以看到有個(gè)向上的箭頭,這個(gè)代表子類重寫(xiě)了父類的方法。我們點(diǎn)擊一下:

在我們比較2個(gè)對(duì)象的時(shí)候: r == r2, 實(shí)際上是執(zhí)行了這樣的方法:

不信咱們?cè)囋?

實(shí)現(xiàn)

熟悉了__eq__以后,我們問(wèn)題就迎刃而解了。我們只需要在__eq__方法里面寫(xiě)上對(duì)應(yīng)的判斷方法即可。

class Receiver(object):

    def __init__(self, name, addr, mobile):
        self.name = name
        self.addr = addr
        self.mobile = mobile

    def __eq__(self, other):
        return self.addr == other.addr and self.mobile == other.mobile


if __name__ == "__main__":
    r = Receiver("小孟", "梅苑小區(qū)", 13922222222)
    r2 = Receiver("小孟", "梅苑小區(qū)", 13922222222)
    print(r == r2)

擴(kuò)展

既然能夠比較對(duì)象是否相等,那能否比較對(duì)象大小呢?那就等大家自己探索了,關(guān)鍵字:

lt, gt, ge, le

另外,還有__str__, __repr__, __hash__等方法,大家感興趣也可以自己重寫(xiě)著玩玩。

總結(jié)

到此這篇關(guān)于Python實(shí)用小知識(shí)之對(duì)象間比較的文章就介紹到這了,更多相關(guān)Python對(duì)象的比較內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • flask框架自定義url轉(zhuǎn)換器操作詳解

    flask框架自定義url轉(zhuǎn)換器操作詳解

    這篇文章主要介紹了flask框架自定義url轉(zhuǎn)換器操作,結(jié)合實(shí)例形式分析了URL轉(zhuǎn)換器的相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • django 解決model中類寫(xiě)不到數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)無(wú)此字段的問(wèn)題

    django 解決model中類寫(xiě)不到數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)無(wú)此字段的問(wèn)題

    這篇文章主要介紹了django 解決model中類寫(xiě)不到數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)無(wú)此字段的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨想過(guò)來(lái)看看吧
    2020-05-05
  • Python回溯法(Backtracking)的具體使用

    Python回溯法(Backtracking)的具體使用

    在Python中,我們可以應(yīng)用回溯法解決各種問(wèn)題,如八皇后問(wèn)題、子集問(wèn)題等,本文就來(lái)介紹一下Python回溯法(Backtracking)的具體使用,感興趣的可以了解一下
    2023-12-12
  • python opencv 實(shí)現(xiàn)讀取、顯示、寫(xiě)入圖像的方法

    python opencv 實(shí)現(xiàn)讀取、顯示、寫(xiě)入圖像的方法

    這篇文章主要介紹了python opencv 實(shí)現(xiàn)讀取、顯示、寫(xiě)入圖像的方法,本文通示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 解決python tkinter界面卡死的問(wèn)題

    解決python tkinter界面卡死的問(wèn)題

    今天小編就為大家分享一篇解決python tkinter界面卡死的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Python計(jì)時(shí)相關(guān)操作詳解【time,datetime】

    Python計(jì)時(shí)相關(guān)操作詳解【time,datetime】

    這篇文章主要介紹了Python計(jì)時(shí)相關(guān)操作,涉及time,datetime模塊的使用技巧,包括時(shí)間戳、時(shí)間差、日期格式等操作方法,需要的朋友可以參考下
    2017-05-05
  • python使用datetime.utcnow()問(wèn)題解析

    python使用datetime.utcnow()問(wèn)題解析

    這篇文章主要介紹了python使用datetime.utcnow()問(wèn)題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 詳解Python+OpenCV實(shí)現(xiàn)圖像二值化

    詳解Python+OpenCV實(shí)現(xiàn)圖像二值化

    圖像二值化就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果的過(guò)程。本文將通過(guò)Python+OpenCV實(shí)現(xiàn)這一過(guò)程,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • 如何基于python操作json文件獲取內(nèi)容

    如何基于python操作json文件獲取內(nèi)容

    這篇文章主要介紹了如何基于python操作json文件獲取內(nèi)容,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 基于Python制作打地鼠小游戲

    基于Python制作打地鼠小游戲

    這篇文章主要為大家介紹了如何利用Python實(shí)現(xiàn)打地鼠小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論