python中 ‘is’ 和 ‘==’ 區別

id –> 唯一身份標識符,?is比較的是id, ==比較的是value?

 

首先, 明確以下三個知識點

id -> 返回對象的'唯一標識符'
== -> 比較操作符,比較判斷兩個對象的value(值)是否相等
is -> 同一性運算符,判斷id是否相同

實驗

01

02

03

總結

> a ?is ?b,實際上是做 id(a)==id(b) 運算
> a == b,實際上比較的是id(a)這個地址指向的值(內存地址)是不是和id(b)這個地址指向值一樣
> 只有數值型和字符串型的情況下(a和b的value相等),a ?is ?b才為True,當a和b是tuple,list,dict或set型 ? ? ? 時,a is b為False
> python為了實現對內存的有效利用,對小整數[-5,256]內的整數會進行緩存,不在該范圍內的則不會緩存

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96312

(0)
rumor31rumor31
上一篇 2018-04-16 10:22
下一篇 2018-04-16 10:33

相關推薦

  • Python數據結構

    數據結構個人總結,方便以后查找。

    Python筆記 2018-04-01
  • 函數與生成器

    函數 由若干語句組成的語句塊,函數名,參數列表構成,是組織代碼的最小單元,完成一定的功能,結構化編程對代碼的最基本的封裝,封裝的目的是為了復用 函數中沒有return,隱式會返回一個none值 定義中的參數列表成為形式參數,只是一種形式表達,簡稱形參 調用時寫的參數是實際參數,是實實在在傳入的值,簡稱實參 函數的定義,只是聲明了參數,不會執行,可以進行調用,…

    2018-04-16
  • 樹 概念


    二叉樹

    2018-04-16
  • 高階函數

    高階函數 Frist class object 函數在python中是一等公民 函數也是對象,可調用的對象 函數可以作為普通變量,參數,返回值等等 數學概念y=g(f(x)) 在數學和計算機科學中,高階函數應當是至少滿足下面一個條件的函數 接受一個或者多個函數作為參數 輸出一個函數 計數器: def counter(base):def inc(step=1)…

    Python筆記 2018-04-23
  • Python高階函數及裝飾器

    First Class Object 函數在Python中是一等公民 函數也是對象,可調用的對象 函數可作為普通變量、參數、返回值等 高階函數 數學定義:y=g(f(x)) 高階函數需滿足的條件,至少其一 接受一個或多個函數作為參數 輸出一個函數 內建函數的高階函數 排序:sorted(iterable[,key][,reverse]) 返回一個新列表,對一…

    2018-04-22
  • StringIO

    StringIOio模塊中的類From io import StringIO內存中,開辟的一個文本模式的buffer,可以像文件對象一樣操作它當close方法被調用的時候,這個buffer會被釋放StringIO操作getvalue() 獲取全部內容。跟文件指針沒有關系from io import StringIO# 內存中構建sio = StringIO(…

    Python筆記 2018-05-07
欧美性久久久久