python中如何比較對象是否相等

這篇文章主要介紹了python中如何比較對象是否相等,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

10年積累的網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有饒平免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

我們在比較數(shù)目是否相等的時(shí)候,可以選擇一些不同的方法來驗(yàn)證結(jié)果。在python中判斷對象的相等就不是這么簡單,因?yàn)橐苍S是判斷一個(gè)值,也是是判斷一個(gè)類別,并不是我們在數(shù)學(xué)中針對于數(shù)量的判斷。下面小編就為大家講解兩個(gè)判斷對象的方法,以及在判斷對象的區(qū)別上有什么不同。

a = [1, 2, 3]
b = [1, 2, 3]
print(a is b)
print(a == b)

大家可以先猜猜結(jié)果是什么。我之前說了python的變量就是個(gè)便利貼,\[1, 2, 3\]都是直接賦值給兩個(gè)變量,也就是說生成了兩個(gè)對象,所以a,b指向的對象不一樣。所以結(jié)果出來了,**第一個(gè)是False,第二個(gè)是True**。為什么呢?因?yàn)閕s比較的是對象相同不相同,但是==比較的是值相同不相同。如果打印兩個(gè)id值的話,顯然是不同的。

print(id(a), id(b))# 結(jié)果1735698385160 1735679028936

在用==進(jìn)行判斷的時(shí)候?qū)嶋H是調(diào)用魔法函數(shù)__eq__()來判斷他們的值是否相等的。

總的來說,我們在判斷是否是同一個(gè)對象的時(shí)候就用is,不要用==,所以在判斷該對象是什么類型的時(shí)候建議用is或者直接用isinstance()這個(gè)方法。

class Person():
   pass
p = Person()
print(type(p) is Person)  # 結(jié)果 True
  • == 是比較兩個(gè)對象的「內(nèi)容」是否相等,即兩個(gè)對象的“值“”是否相等,不管兩者在內(nèi)存中的引用地址是否一樣。

  • is 比較的是兩個(gè)實(shí)例對象是不是完全相同,它們是不是同一個(gè)對象,占用的內(nèi)存地址是否相同。即is比較兩個(gè)條件:1.內(nèi)容相同。2.「內(nèi)存中地址」相同。

  • 使用is注意python對于小整數(shù)使用對象池存儲(chǔ)問題,和字符串的intern機(jī)制存儲(chǔ)問題,并且命令行運(yùn)行和Pycharm運(yùn)行有點(diǎn)不一樣,因?yàn)镻ycharm對解釋器進(jìn)行了優(yōu)化。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享python中如何比較對象是否相等內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!

網(wǎng)頁名稱:python中如何比較對象是否相等
網(wǎng)站鏈接:http://bm7419.com/article32/jdjcpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站收錄、電子商務(wù)面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)