欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python‘==‘ 及 ‘is‘相關(guān)原理解析

 更新時(shí)間:2020年09月05日 09:07:25   作者:MHyourh  
這篇文章主要介紹了Python‘==‘ 及 ‘is‘相關(guān)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

'==' 比較的是兩個(gè)對(duì)象的值

'is' 比較的是兩個(gè)對(duì)象的內(nèi)存地址(id)

下面我們著重理解 'is'。對(duì)于這個(gè),我們需要知道:小整數(shù)對(duì)象池,大整數(shù)對(duì)象池,以及intern機(jī)制

小整數(shù)池:Python預(yù)先創(chuàng)建小整數(shù)緩存池—— [-5~256],無(wú)論創(chuàng)建多少個(gè)對(duì)象,都是指向同一個(gè)地址,這樣是為了避免小整數(shù)頻繁申請(qǐng)和釋放內(nèi)存。

>>> a=3
>>> b=3
>>> a is b
True
>>> 1+2 is 3
True

>>> a=1.0
>>> b=1.0
>>> a is b
False

大整數(shù)對(duì)象池:Python 提供了一個(gè)可擴(kuò)展的內(nèi)存空間,也叫通用整數(shù)對(duì)象池,誰(shuí)需要用就給誰(shuí)用,免去了申請(qǐng)內(nèi)存。這個(gè)空間是一個(gè)PyIntBlock結(jié)構(gòu),是用一個(gè)單向列表連接一串內(nèi)存(block),這個(gè)列表由 block_list 維護(hù),而每個(gè) block 維護(hù)一個(gè) 整數(shù)對(duì)象數(shù)組(Objects),用于存放被緩存的整數(shù)對(duì)象,即處于一個(gè)內(nèi)存(block)的大整數(shù)是同一個(gè)對(duì)象。

>>> def func():
... a=10.1
... b=10.1
... return a is b
...
>>> func()
True

a和b的賦值都是由同一個(gè)通用整數(shù)池項(xiàng)獲得的。

intern機(jī)制:Python的字符串類型中有一個(gè) interned,它是一個(gè)記錄字符串對(duì)象的字典,以此來(lái)保證這些字符串在內(nèi)存中的唯一,相同值的字符串會(huì)使用同一個(gè)對(duì)象。

但是,只對(duì)由字母、數(shù)字、下劃線組成的字符串做intern處理,而存在其他字符的字符串則不會(huì)。

>>> a='abc'
>>> b='abc'
>>> a is b
True

>>> a='ab c'
>>> b='ab c'
>>> a is b
False

此外,Python其他的數(shù)據(jù)類型如字典(dict)、列表(list)、集合(set)等,都是創(chuàng)建不同的對(duì)象

>>> a=[1,2,3]
>>> b=[1,2,3]
>>> a is b
False>>> a={'a':1}>>> b={'a':1}>>> a is bFalse>>>

補(bǔ)充一個(gè),下面這種情況是因?yàn)樯弦粋€(gè) [1,2,3]被回收了,在新建[4,5,6]時(shí)那片緩存又被用到了

>>> id([1,2,3]) == id([4,5,6])
True
>>> id([1,2,3])
36200264L
>>> id([4,5,6])
36200264L

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python數(shù)據(jù)分析之?Matplotlib?折線圖繪制

    Python數(shù)據(jù)分析之?Matplotlib?折線圖繪制

    這篇文章主要介紹了Python數(shù)據(jù)分析之?Matplotlib?折線圖繪制,在數(shù)據(jù)分析中,數(shù)據(jù)可視化也非常重要,下文通過(guò)數(shù)據(jù)分析展開(kāi)對(duì)折線圖的繪制,需要的小伙伴可以參考一下
    2022-05-05
  • Python函數(shù)基礎(chǔ)

    Python函數(shù)基礎(chǔ)

    這篇文章主要從函數(shù)開(kāi)始介紹展開(kāi)Python函數(shù),以最基本的函數(shù)定義方法描述,需要的朋友可以參考下文簡(jiǎn)單的介紹
    2021-08-08
  • 圖文詳解python安裝Scrapy框架步驟

    圖文詳解python安裝Scrapy框架步驟

    在本篇內(nèi)容中我們給大家整理了關(guān)于python安裝Scrapy框架的圖文詳細(xì)步驟,需要的朋友們跟著學(xué)習(xí)下。
    2019-05-05
  • 基于PyTorch中view的用法說(shuō)明

    基于PyTorch中view的用法說(shuō)明

    這篇文章主要介紹了基于PyTorch中view的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 完美解決python針對(duì)hdfs上傳和下載的問(wèn)題

    完美解決python針對(duì)hdfs上傳和下載的問(wèn)題

    這篇文章主要介紹了完美解決python針對(duì)hdfs上傳和下載的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 淺談Python編程中3個(gè)常用的數(shù)據(jù)結(jié)構(gòu)和算法

    淺談Python編程中3個(gè)常用的數(shù)據(jù)結(jié)構(gòu)和算法

    這篇文章主要介紹了淺談Python編程中3個(gè)常用的數(shù)據(jù)結(jié)構(gòu)和算法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • Django DRF路由與擴(kuò)展功能的實(shí)現(xiàn)

    Django DRF路由與擴(kuò)展功能的實(shí)現(xiàn)

    這篇文章主要介紹了Django DRF路由與擴(kuò)展功能的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 如何用Python破解wifi密碼過(guò)程詳解

    如何用Python破解wifi密碼過(guò)程詳解

    這篇文章主要介紹了如何用Python破解wifi密碼過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 一文搞懂python 中的迭代器和生成器

    一文搞懂python 中的迭代器和生成器

    這篇文章主要介紹了python 中的迭代器和生成器簡(jiǎn)單介紹,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • python實(shí)現(xiàn)決策樹(shù)ID3算法的示例代碼

    python實(shí)現(xiàn)決策樹(shù)ID3算法的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)決策樹(shù)ID3算法的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論