>>n=1>>>nis1True>>>b='1'>>>bis1False>>>n==bFalse由于1和'1'不管在值上面還是在引用上面都不同,所以結(jié)果都為false對(duì)于:>>>n=1>>>nis1True這" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python中的is和==比較兩個(gè)對(duì)象的兩種方法

系統(tǒng) 1823 0

Python中的is和==比較兩個(gè)對(duì)象的兩種方法

在Python中有兩種方式比較兩個(gè)對(duì)象是否相等,分別是is和==,兩者之間是不同的

  • ==比較的是值(如同java中的equals方法)
  • is比較的是引用(可以看作比較內(nèi)存地址, 類似于java中的==)

對(duì)于:

            
>>> n = 1
>>> n is 1
True
>>> b = '1'
>>> b is 1
False
>>> n == b
False

          

由于1和'1'不管在值上面還是在引用上面都不同,所以結(jié)果都為false

對(duì)于:

            
>>> n = 1
>>> n is 1
True

          

這里有一個(gè)知識(shí)點(diǎn),簡(jiǎn)單來(lái)說(shuō),對(duì)于整形這種primitive type,引用比較就是值比較,然而,Python在實(shí)現(xiàn)整型中采用了這種方式,對(duì)于位于-5到256之間的數(shù)字,在內(nèi)存中保留數(shù)組存儲(chǔ)這些數(shù)字,下次使用時(shí)候直接引用。而在此范圍外的數(shù)字,則會(huì)新建int對(duì)象

舉個(gè)簡(jiǎn)單的example,如下代碼所示:

            
#a和b的值超出256
>>> a = 257
>>> b = 257
>>> a is b
False

#a和b的值在-5和256之間
>>> a = 256
>>> b = 256
>>> a is b
True


          

如上例子所示,只要是在-5~256之間的整形,python不會(huì)給變量初始化新的內(nèi)存空間,但是一旦超出256,則會(huì)分配新的空間。

通過(guò)打印兩個(gè)對(duì)象的id也可以直接的看出兩個(gè)對(duì)象內(nèi)存地址的區(qū)別,如下所示:

            
#a和b的值超出256
>>> a = 257
>>> b = 257
>>>
>>>
>>> id(a)
140638347685960
>>> id(b)
140638347686008

#a和b的值在-5和256之間
>>> a = 256
>>> b = 256
>>> id(a)
140638347656864
>>> id(b)
140638347656864


          

以上就是Python is和==的對(duì)比的詳解,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 鄱阳县| 公主岭市| 乌海市| 门头沟区| 桦南县| 响水县| 惠东县| 龙岩市| 永昌县| 雷州市| 云梦县| 库尔勒市| 兴山县| 汾阳市| 建始县| 延庆县| 饶阳县| 枞阳县| 丹凤县| 黔西| 和龙市| 开阳县| 聂拉木县| 开鲁县| 巴彦淖尔市| 广昌县| 汤阴县| 水富县| 毕节市| 镇巴县| 镇远县| 色达县| 郓城县| 桐乡市| 佳木斯市| 南和县| 措美县| 弋阳县| 若羌县| 安阳县| 托里县|