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

Python實用小知識之對象間的比較

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

前言

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

場景

米洛今年國慶節(jié)打算給新家添置一些日用的東西,比如床、四件套等等。為此,他使用了各大電商平臺的app,但因為是新家,所以有些app還沒有錄入地址。

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

我們都知道,收貨地址最重要的就是地址+電話了,通過這個可以確定一個人。因為有些英雄美女喜歡把姓名寫成: 喵星人,吳彥祖這樣的,所以只要確保地址和電話對得上就行。

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

代碼里的收貨地址

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

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個收貨地址。

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

來看看執(zhí)行效果:

因為r和r2是2個不同的對象,所以他們是肯定不相等的。

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

了解__eq__方法

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

可以看到有個向上的箭頭,這個代表子類重寫了父類的方法。我們點擊一下:

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

不信咱們試試:

實現(xiàn)

熟悉了__eq__以后,我們問題就迎刃而解了。我們只需要在__eq__方法里面寫上對應(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ò)展

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

lt, gt, ge, le

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

總結(jié)

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

相關(guān)文章

  • python+selenium使用xpath定位的問題及解決

    python+selenium使用xpath定位的問題及解決

    這篇文章主要介紹了python+selenium使用xpath定位的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 利用Python改正excel表格數(shù)據(jù)

    利用Python改正excel表格數(shù)據(jù)

    這篇文章主要介紹了利用Python改正excel表格數(shù)據(jù),運用面向過程寫的,將每一步都放在了不同的函數(shù)中,下文詳細(xì)過程介紹需要的小伙伴可以參考一下
    2022-06-06
  • pycharm+django創(chuàng)建一個搜索網(wǎng)頁實例代碼

    pycharm+django創(chuàng)建一個搜索網(wǎng)頁實例代碼

    這篇文章主要介紹了pycharm+django創(chuàng)建一個搜索網(wǎng)頁實例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • kali中python版本的切換方法

    kali中python版本的切換方法

    今天小編就為大家分享一篇kali中python版本的切換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python內(nèi)置函數(shù)zip map filter的使用詳解

    Python內(nèi)置函數(shù)zip map filter的使用詳解

    這篇文章主要介紹了Python內(nèi)置函數(shù)zip map filter的使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • python實現(xiàn)八大排序算法(1)

    python實現(xiàn)八大排序算法(1)

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)八大排序算法的第一篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 使用GPT-3訓(xùn)練垃圾短信分類器示例詳解

    使用GPT-3訓(xùn)練垃圾短信分類器示例詳解

    這篇文章主要為大家介紹了使用GPT-3訓(xùn)練垃圾短信分類器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Python查找大文件的實用腳本分享

    Python查找大文件的實用腳本分享

    這篇文章主要為大家分享一個利用Python查找大文件的實用腳本,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • 自己搭建resnet18網(wǎng)絡(luò)并加載torchvision自帶權(quán)重的操作

    自己搭建resnet18網(wǎng)絡(luò)并加載torchvision自帶權(quán)重的操作

    這篇文章主要介紹了自己搭建resnet18網(wǎng)絡(luò)并加載torchvision自帶權(quán)重的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 詳解python爬蟲系列之初識爬蟲

    詳解python爬蟲系列之初識爬蟲

    這篇文章主要介紹了python爬蟲系列之初識爬蟲,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論

双鸭山市| 潞西市| 陆河县| 泰顺县| 尚志市| 团风县| 九寨沟县| 永平县| 兴国县| 锦屏县| 集安市| 万源市| 兴业县| 县级市| 南昌市| 兴安县| 沙洋县| 大足县| 囊谦县| 泌阳县| 漳州市| 安福县| 都昌县| 临颍县| 惠安县| 定陶县| 四子王旗| 广宁县| 增城市| 宿松县| 沙田区| 隆化县| 色达县| 金坛市| 凯里市| 阳原县| 昭平县| 渭源县| 烟台市| 太白县| 周宁县|