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

首頁 > 編程 > Python > 正文

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

2020-02-16 10:10:24
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇江市| 临泽县| 宝清县| 龙门县| 苗栗市| 兴文县| 区。| 武义县| 铜鼓县| 荔波县| 嘉禾县| 中牟县| 池州市| 菏泽市| 高尔夫| 赤城县| 德令哈市| 廊坊市| 修文县| 绥化市| 长武县| 唐河县| 阿克| 灵石县| 本溪市| 依兰县| 阿荣旗| 德州市| 青浦区| 平塘县| 洪湖市| 新乡县| 班玛县| 延川县| 临朐县| 镇平县| 达州市| 乐陵市| 和平县| 镇赉县| 罗山县|