真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python中is和==的區(qū)別是什么-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Python中is和==的區(qū)別是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)致力于成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計(jì),集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過(guò)標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場(chǎng)競(jìng)爭(zhēng)中脫穎而出。 選擇成都創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

在Python中一切都是對(duì)象。

Python中對(duì)象包含的三個(gè)基本要素,分別是:

  1. id(身份標(biāo)識(shí))

  2. type(數(shù)據(jù)類型)

  3. value(值)

對(duì)象之間比較是否相等可以用 == ,也可以用 is 。

is 和 == 都是對(duì)對(duì)象進(jìn)行比較判斷作用的,但對(duì)對(duì)象比較判斷的內(nèi)容并不相同。下面來(lái)看看具體區(qū)別在哪?

is 比較的是兩個(gè)對(duì)象的id值是否相等,也就是比較兩個(gè)對(duì)象是否為同一個(gè)實(shí)例對(duì)象,是否指向同一個(gè)內(nèi)存地址。

== 比較的是兩個(gè)對(duì)象的內(nèi)容是否相等,默認(rèn)會(huì)調(diào)用對(duì)象的 __eq__ 方法。

== 是python標(biāo)準(zhǔn)操作符中的比較操作符,用來(lái)比較判斷兩個(gè)對(duì)象的值是否相等。

先來(lái)看一個(gè)例子

>>> a = [1, 2, 3]
>>> b = a
>>> b is a 
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True

is 也被叫做同一性運(yùn)算符,也就是id是否相同。

看下面代碼, a和b變量的id不同, 所以 b == a 是True, b is a 是False.

再來(lái)看一下他們的id:

>>> id(a)
4364243328
>>> 
>>> id(b)
4364202696

哪些情況下 is 和 == 結(jié)果是完全相同的?

>>> a = 256
>>> b = 256
>>> a is b
True
>>> a == b
True
>>> a = 1000
>>> b = 10**3
>>> a == b
True
>>> a is b
False
>>>

所以數(shù)字類型不完全相同。

那為什么256時(shí)相同, 而1000時(shí)不同呢?

因?yàn)槌鲇趯?duì)性能的考慮,Python內(nèi)部做了很多的優(yōu)化工作,對(duì)于整數(shù)對(duì)象,Python把一些頻繁使用的整數(shù)對(duì)象緩存起來(lái),保存到一個(gè)叫 small_ints 的鏈表中,在Python的整個(gè)生命周期內(nèi),任何需要引用這些整數(shù)對(duì)象的地方,都不再重新創(chuàng)建新的對(duì)象,而是直接引用緩存中的對(duì)象。

Python把這些可能頻繁使用的整數(shù)對(duì)象規(guī)定在范圍 [-5, 256] 之間的小對(duì)象放在 small_ints 中,但凡是需要用些小整數(shù)時(shí),就從這里面取,不再去臨時(shí)創(chuàng)建新的對(duì)象。

>>> c = 'miracle.young'
>>> d = 'miracle.young'
>>> c is d
False
>>> c == d
True
>>> c = 'miracleyoung'
>>> d = 'miracleyoung'
>>> c is c
True
>>> c == d
True

所以字符串類型不完全相同,這個(gè)和解釋器實(shí)現(xiàn)有關(guān)。

>>> a = (1,2,3) # a和b為元組類型
>>> b = (1,2,3)
>>> a is b
False
>>> a = [1,2,3] # a和b為list類型
>>> b = [1,2,3]
>>> a is b
False
>>> a = {'miracle':100,'young':1} # a和b為dict類型
>>> b = {'miracle':100,'young':1}
>>> a is b
False
>>> a = set([1,2,3]) # a和b為set類型
>>> b = set([1,2,3])
>>> a is b
False

所以當(dāng)變量是數(shù)字、字符串、元組,列表,字典時(shí),is 和 == 都不相同, 不能互換使用!當(dāng)比較值時(shí),要使用 ==,比較是否是同一個(gè)內(nèi)存地址時(shí)應(yīng)該使用is。

當(dāng)然,開(kāi)發(fā)中比較值的情況比較多。

關(guān)于“Python中is和==的區(qū)別是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


文章名稱:Python中is和==的區(qū)別是什么-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://weahome.cn/article/dpdeop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部