Python中的is和==比較兩個(gè)對(duì)象的兩種方法
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),簡單來說,對(duì)于整形這種primitive type,引用比較就是值比較,然而,Python在實(shí)現(xiàn)整型中采用了這種方式,對(duì)于位于-5到256之間的數(shù)字,在內(nèi)存中保留數(shù)組存儲(chǔ)這些數(shù)字,下次使用時(shí)候直接引用。而在此范圍外的數(shù)字,則會(huì)新建int對(duì)象
舉個(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不會(huì)給變量初始化新的內(nèi)存空間,但是一旦超出256,則會(huì)分配新的空間。
通過打印兩個(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ì)比的詳解,如有疑問請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Python count函數(shù)使用方法實(shí)例解析
這篇文章主要介紹了Python count函數(shù)使用方法實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python xlrd excel文件操作代碼實(shí)例
這篇文章主要介紹了Python xlrd excel文件操作代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python實(shí)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中棧的操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)中棧的操作,包括基于Python實(shí)現(xiàn)棧的定義、入棧、出棧、判斷??栈驐M等情況,需要的朋友可以參考下2017-12-12
使用Python和PaddleOCR實(shí)現(xiàn)圖文識(shí)別的代碼和步驟
在當(dāng)今數(shù)字化時(shí)代,圖文識(shí)別技術(shù)的應(yīng)用越來越廣泛,如文檔數(shù)字化、信息提取等,PaddleOCR 是百度開源的一款強(qiáng)大的 OCR 工具包,它集成了多種先進(jìn)的算法和模型,本文將詳細(xì)介紹如何使用 PaddleOCR 和 Python 實(shí)現(xiàn)圖文識(shí)別,需要的朋友可以參考下2025-05-05
python實(shí)現(xiàn)定時(shí)同步本機(jī)與北京時(shí)間的方法
這篇文章主要介紹了python實(shí)現(xiàn)定時(shí)同步本機(jī)與北京時(shí)間的方法,涉及Python針對(duì)時(shí)間的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
修復(fù)Python縮進(jìn)錯(cuò)誤的方法實(shí)現(xiàn)
在Python中,縮進(jìn)是非常重要的,因?yàn)樗鼪Q定了代碼塊的層次結(jié)構(gòu),本文主要介紹了修復(fù)Python縮進(jìn)錯(cuò)誤的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
Python基于matplotlib實(shí)現(xiàn)繪制三維圖形功能示例
這篇文章主要介紹了Python基于matplotlib實(shí)現(xiàn)繪制三維圖形功能,涉及Python使用matplotlib模塊進(jìn)行三維圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
梳理總結(jié)Python開發(fā)中需要摒棄的18個(gè)壞習(xí)慣
大家好,今天給大家分享 18 個(gè) Python 初學(xué)者常有的壞習(xí)慣,這些壞習(xí)慣不僅影響 Python 代碼的可讀性,而且 影響 Python 的運(yùn)行性能,摒棄這些壞習(xí)慣并以 Pythonic 的方式編寫代碼,提高的不僅僅是你的代碼質(zhì)量,也給閱讀代碼的人留下好印象2022-01-01
Python?提取出SQL語句中Where的值兩種方法(示例代碼)
為了提取SQL語句中WHERE子句的值,我們可以利用Python的sqlparse庫,這是一個(gè)專門用于解析SQL語句的庫,這篇文章主要介紹了Python?提取出SQL語句中Where的值的方法,需要的朋友可以參考下2024-08-08

