同一運算子
同一運算子用於比較兩個物件的儲存單元,實際比較的是物件的位址。
運算子描述
isis 是判斷兩個識別符號是不是引用同乙個物件
is not
is not 是判斷兩個識別符號是不是引用不同物件
is 與 == 區別:
is 用於判斷兩個變數引用物件是否為同乙個,既比較物件的位址。
== 用於判斷引用變數引用物件的值是否相等,預設呼叫物件的 __eq__()方法。
例1,命令列模式下:
>>> a = 100
>>> b = 100
>>> id(100)
140716374663936
>>> id(a)
140716374663936
>>> id(b)
140716374663936
>>> a is b
true
>>> a == b
true
>>> a = 1000
>>> b = 1000
>>> a is b
false
>>> id(1000)
2404914035472
>>> id(a)
2404914035440
>>> id(b)
2404914035600
>>> a = b = 1000
>>> a is b
true
整數快取問題
python 僅僅對比較小的整數物件進行快取(範圍為[-5, 256])快取起來,而並非是所有整數物件。需要注意的是,這僅僅是在命令列中執行,而在 pycharm 或者idle儲存為檔案執行,結果是不一樣的,這是因為直譯器做了一部分優化(範圍任意數?)。
老師:is 運算子比 == 效率高,在變數和 none 進行比較時,應該使用 is。
idle檔案執行
原始碼:a = -266666
b = -266666
print(a is b)
a = -5
b = -5
print(a is b)
a = 1000000000
b = 1000000000
print(a is b)
a = 3.14
b = 3.14
print(a is b)
執行結果:
true
true
true
true
Python is同一性運算子和 相等運算子區別
python中有很多運算子,今天我們就來講講is和 兩種運算子在應用上的本質區別是什麼。在講is和 這兩種運算子區別之前,首先要知道python中物件包含的三個基本要素,分別是 id 身份標識 python type 資料型別 和value 值 is和 都是對物件進行比較判斷作用的,但對物件比較判斷...
windows,macintosh共享同乙個虛擬機器
mac下面發現乙個虛擬機器的軟體vmware fusion,自己在windows下面用的也有vmware workstation,乙個公司的,想來其虛擬機器映象檔案應該有共通性,試了一下,還真可以,有畫面為證 方法很簡單,安裝好vmware fusion,file open開啟你虛擬映象所在目錄,選...
布林值 比較運算子 同一運算子以及整數快取問題
布林值 在python3中,把true和false定義成了關鍵字,但本質還是1和0,甚至可以數字相加。比較運算子 所有比較運算子返回1表示真,返回0表示假,這分別於特殊變數true和false等價。以下假設變數a 3 變數b 10 運算子描述 例項 等於 比較物件的值是否相等 a b 返回false...