五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動(dòng)態(tài)

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

發(fā)布日期:2021-12-25 21:42 | 文章來源:源碼之家

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

場景

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

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

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

那我們就需要比較地址是否有重復(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è)收貨地址相同。

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

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

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

了解__eq__方法

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

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

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

不信咱們試試:

實(shí)現(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實(shí)用小知識之對象間比較的文章就介紹到這了,更多相關(guān)Python對象的比較內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部