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

黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Python中的is和==比較兩個對象的兩種方法

系統 2032 0

Python中的is和==比較兩個對象的兩種方法

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

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

對于:

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

          

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

對于:

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

          

這里有一個知識點,簡單來說,對于整形這種primitive type,引用比較就是值比較,然而,Python在實現整型中采用了這種方式,對于位于-5到256之間的數字,在內存中保留數組存儲這些數字,下次使用時候直接引用。而在此范圍外的數字,則會新建int對象

舉個簡單的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不會給變量初始化新的內存空間,但是一旦超出256,則會分配新的空間。

通過打印兩個對象的id也可以直接的看出兩個對象內存地址的區別,如下所示:

            
#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和==的對比的詳解,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論