最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年09月06日 09:41:12   投稿:lqh  
這篇文章主要介紹了Python中的is和==比較兩個(gè)對象的兩種方法的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下

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

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

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

對于:

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

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

對于:

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

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

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

通過打印兩個(gè)對象的id也可以直接的看出兩個(gè)對象內(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和==的對比的詳解,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論

奉新县| 黔江区| 文登市| 泾源县| 日喀则市| 长葛市| 界首市| 古交市| 南召县| 利辛县| 阳东县| 丹东市| 华安县| 宜州市| 广灵县| 乌兰浩特市| 襄汾县| 舒城县| 明溪县| 通州市| 定南县| 巢湖市| 靖宇县| 白山市| 新巴尔虎右旗| 福海县| 丽水市| 新沂市| 报价| 建宁县| 达拉特旗| 灵石县| 丁青县| 延庆县| 崇文区| 宜兰市| 玛多县| 哈巴河县| 黎平县| 晋江市| 高尔夫|