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

python實(shí)現(xiàn)比較類的兩個(gè)instance(對(duì)象)是否相等的方法分析

 更新時(shí)間:2019年06月26日 11:52:47   作者:輕舞肥羊  
這篇文章主要介紹了python實(shí)現(xiàn)比較類的兩個(gè)instance(對(duì)象)是否相等的方法,結(jié)合實(shí)例形式分析了Python判斷類的實(shí)例是否相等的判斷操作實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了python實(shí)現(xiàn)比較類的兩個(gè)instance(對(duì)象)是否相等的方法。分享給大家供大家參考,具體如下:

對(duì)于同一個(gè)Class,可以創(chuàng)建不同的實(shí)例(instance), 如何比較這兩個(gè) instance 是否相等呢?我們知道,對(duì)于計(jì)算機(jī)來(lái)說(shuō),要判斷兩個(gè)對(duì)象是否相等,就是看在內(nèi)存中的地址是否同一個(gè)。如果內(nèi)存地址一樣,那么肯定是相等的。這種情況通常出現(xiàn)在一個(gè)對(duì)象是另外一個(gè)對(duì)象的引用時(shí)出現(xiàn)。

但在實(shí)際的開發(fā)過(guò)程中,要比較兩個(gè)對(duì)象是否相等,并不是通過(guò)內(nèi)存地址來(lái)判斷的,而是通過(guò)這兩個(gè)對(duì)象的部分屬性值,或者全部屬性值來(lái)對(duì)比判斷的。

假設(shè)有一個(gè)職員Class, 我們分別創(chuàng)建了兩個(gè)對(duì)象

class Staff(object):
 def __init__(self,id,name,sex):
  self.id=id
  self.name=name
  self.sex=sex

我們這樣認(rèn)為,如果id 相同,則表示兩個(gè)對(duì)象相等,id姑且表示身份證編號(hào)吧,如果身份證編號(hào)相同,那么肯定是同一人,在實(shí)際的項(xiàng)目中會(huì)遇到這樣的情況。

創(chuàng)建對(duì)象并查看各自的內(nèi)存地址

staff1=Staff("123456","張三","男")
staff2=Staff("123456","李四","女")
print id(staff1),id(staff2)
#12327248 12327184

結(jié)果很明顯,在不同的內(nèi)存地址,這時(shí)候如果判斷 staff1==staff2 ,結(jié)果肯定是  False。

如何滿足我們的需要,只要id 相同的對(duì)象,就認(rèn)為是相等的對(duì)象呢,有如下幾種方法:

1.重載 Staff Class 的 __eq__ 方法

class Staff(object):
 def __init__(self,id,name,sex):
  self.id=id
  self.name=name
  self.sex=sex
 def __eq__(self,other):
  return self.id==other.id
staff1=Staff("123456","張三","男")
staff2=Staff("123456","李四","女")
print id(staff1),id(staff2)
print staff1==staff2
#True

結(jié)果返回為 true,說(shuō)明是相等的,但在計(jì)算機(jī)中的內(nèi)存地址,肯定是不一樣的。這里重載了__eq__方法,當(dāng)然你還可以 增加比較條件,例子中只對(duì)比了id. 用同樣的方法,還可以實(shí)現(xiàn) 兩個(gè)對(duì)象相加等操作,重載__add__ 方法。

2.直接屬性值對(duì)比來(lái)實(shí)現(xiàn)

staff1=Staff("123456","張三","男")
staff2=Staff("123456","李四","女")
print id(staff1),id(staff2)
print staff1.__dict__
print staff2.__dict__
if staff1.__dict__['id']==staff2.__dict__['id']:
 print 'yes,equal'

你會(huì)發(fā)現(xiàn),這樣也是可以的,同樣也可以對(duì)比多個(gè)屬性,這里的重點(diǎn)是用到了python Class 的 __dict__系統(tǒng)內(nèi)置方法來(lái)實(shí)現(xiàn)。

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python如何實(shí)現(xiàn)圖片轉(zhuǎn)文字

    python如何實(shí)現(xiàn)圖片轉(zhuǎn)文字

    這篇文章主要介紹了python如何實(shí)現(xiàn)圖片轉(zhuǎn)文字問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • python中裝飾器的理解與使用詳解

    python中裝飾器的理解與使用詳解

    這篇文章主要介紹了python中裝飾器的理解與使用詳解,裝飾器本質(zhì)上是一個(gè)閉包函數(shù),其作用在于可以為其他函數(shù)增加額外功能,裝飾器的返回值是一個(gè)函數(shù)對(duì)象,需要的朋友可以參考下
    2023-07-07
  • Python OpenCV實(shí)現(xiàn)傳統(tǒng)圖片格式與base64轉(zhuǎn)換

    Python OpenCV實(shí)現(xiàn)傳統(tǒng)圖片格式與base64轉(zhuǎn)換

    Base64是網(wǎng)絡(luò)上最常見(jiàn)的用于傳輸8Bit字節(jié)碼的編碼方式之一,本文主要介紹了Python OpenCV實(shí)現(xiàn)傳統(tǒng)圖片格式與base64轉(zhuǎn)換,感興趣的可以參考一下
    2021-06-06
  • Python常見(jiàn)異常類型處理

    Python常見(jiàn)異常類型處理

    這篇文章主要個(gè)大家分享的是Python常見(jiàn)異常類型處理,編寫程序的過(guò)程,難免會(huì)遇到一些錯(cuò)誤,程序邏輯又或者運(yùn)行與系統(tǒng)發(fā)生各種沖突等等,下面我們就來(lái)看看那些我們?cè)诰幊讨谐S龅降漠惓6际窃趺刺幚淼陌?,需要的小伙伴可以參考一?/div> 2021-12-12
  • Django+uni-app實(shí)現(xiàn)數(shù)據(jù)通信中的請(qǐng)求跨域的示例代碼

    Django+uni-app實(shí)現(xiàn)數(shù)據(jù)通信中的請(qǐng)求跨域的示例代碼

    這篇文章主要介紹了Django+uni-app實(shí)現(xiàn)數(shù)據(jù)通信中的請(qǐng)求跨域的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python實(shí)現(xiàn)的人臉識(shí)別打卡系統(tǒng)

    python實(shí)現(xiàn)的人臉識(shí)別打卡系統(tǒng)

    這篇文章主要介紹了python實(shí)現(xiàn)的人臉識(shí)別打卡系統(tǒng),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-05-05
  • python實(shí)現(xiàn)批量移動(dòng)文件

    python實(shí)現(xiàn)批量移動(dòng)文件

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批量移動(dòng)文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 如何讀取.npy文件以及如何實(shí)現(xiàn)將數(shù)組保存為圖片

    如何讀取.npy文件以及如何實(shí)現(xiàn)將數(shù)組保存為圖片

    這篇文章主要介紹了如何讀取.npy文件以及如何實(shí)現(xiàn)將數(shù)組保存為圖片問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 基于Python實(shí)現(xiàn)屏幕取色工具

    基于Python實(shí)現(xiàn)屏幕取色工具

    屏幕取色小工具?是一種實(shí)用的軟件工具,主要用于從屏幕上精確獲取顏色值,非常適合設(shè)計(jì)、編程等需要精確配色的領(lǐng)域,下面我們看看如何利用Python編寫一個(gè)屏幕取色工具吧
    2024-12-12
  • Python requests.post()方法中data和json參數(shù)的使用方法

    Python requests.post()方法中data和json參數(shù)的使用方法

    這篇文章主要介紹了Python requests.post()方法中data和json參數(shù)的使用方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-08-08

最新評(píng)論

稷山县| 华蓥市| 宁安市| 东辽县| 梓潼县| 七台河市| 固原市| 洪雅县| 石嘴山市| 乌兰察布市| 乌兰浩特市| 柯坪县| 卫辉市| 黄龙县| 锡林浩特市| 分宜县| 原阳县| 郑州市| 楚雄市| 东兰县| 黄山市| 绥芬河市| 林州市| 上林县| 泸水县| 甘孜| 正镶白旗| 工布江达县| 秀山| 龙海市| 莱西市| 盐山县| 苏尼特左旗| 临西县| 洪洞县| 瓮安县| 宁都县| 葵青区| 井陉县| 洞口县| 正蓝旗|