日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python運算符中如何選擇is和==?

我們在數(shù)學(xué)中想要判斷兩個對象是否相等,可以使用=號。在python中由于比較的數(shù)據(jù)不一定是數(shù)值,所以我們的符號有is和==可以選擇。那么在不同的條件下,選擇is還是==是有所不同的。下面我們在身份運算符中尋找is和==在判斷對象引用上的區(qū)別,幫助大家在使用身份運算符時能更好的選擇,具體內(nèi)容如下:


身份運算符是用來判斷兩個變量是否是引用了相同內(nèi)存地址的運算符。

兩個變量的值相等,它們不一定就是引用了相同的內(nèi)存地址,但如果兩個變量引用了相同的內(nèi)存地址,那么他們的值必然相等。

身份運算符說白了其實就是is符號。它可以用來比較兩個變量是否引用了同一個對象。

>>> a = 3
>>> id(a)
140602638349720
>>> hex(id(a)) # 還原成我們看著更順眼的16進制,但是本文以10進制地址為主(因為懶)
'0x7fe09a503598'

顧名思義,is是“相同”,而==是指兩者之間的”相等“關(guān)系。所謂相同,比較的是兩者之間的在內(nèi)存中的位置,

>>> a = 3
>>> id(a)
140602638349720
>>> b = 3 # b指向的是和a指向的同一塊地址(但是并不意味這改變了a,b也會相應(yīng)改變)
>>> id(b)
140602638349720
>>> c = a # a的引用復(fù)制給c,在內(nèi)存中其實是指向了用一個對象
>>> id(c)
140602638349720
>>> a is b
True
>>> a is c
True
>>> b is c
True

我們看到,上面a,b,c的地址相同,所以他們互相之間”相同“

而相等則兩者之間的數(shù)值對應(yīng)相等

>>> a = 3
>>> b = a
>>> a = 4
>>> b
3
 
>>> a = [3]
>>> b = [3]
>>> id(a)
4351374184
>>> id(b)
4351374112
>>> a is b
False 
>>> a == b
True
>>> a[0] = 4
>>> b
[3]
 
>>> a = [3]
>>> b = a  # b就是a的引用,占得是同一塊地址,而且當(dāng)a的內(nèi)容改變時,b也會隨之改變,這和上面
# int對象不同,我也不知道為啥要這么搞。
>>> a[0] = 4 
>>> b
[4]

很多人看到這肯定是一鍋漿糊了,其實就是一個原則,能用==就不用is。除了一種情況,那就是判斷對象是否是None。

>>> if a is None:
...     pass

以上就是我們本篇探究python運算符中在不同的情況下選擇is還是==,相信大家已經(jīng)明白兩個的區(qū)別和用法了,小編還是推薦使用==多一點。


本文標(biāo)題:創(chuàng)新互聯(lián)Python教程:python運算符中如何選擇is和==?
URL網(wǎng)址:http://www.dlmjj.cn/article/dhisjid.html