国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-01-04 16:41:02
字體:
來源:轉載
供稿:網友

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

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

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

對于:

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

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

對于:

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

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

舉個簡單的example,如下代碼所示:

#a和b的值超出256>>> a = 257>>> b = 257>>> a is bFalse#a和b的值在-5和256之間>>> a = 256>>> b = 256>>> a is bTrue

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 门头沟区| 罗城| 邢台县| 蒙阴县| 合山市| 获嘉县| 普兰店市| 高台县| 商城县| 泸水县| 邢台县| 双流县| 玉溪市| 阳江市| 合江县| 安仁县| 濮阳县| 汤阴县| 运城市| 呼和浩特市| 梁山县| 阿鲁科尔沁旗| 亳州市| 镇坪县| 黄浦区| 夹江县| 遂宁市| 汉中市| 天柱县| 门源| 松桃| 专栏| 哈巴河县| 岳西县| 辽中县| 嘉鱼县| 中宁县| 朔州市| 新干县| 永城市| 临朐县|