20200930 021 同一運算子 整數快取問題

2021-10-09 22:34:38 字數 1284 閱讀 3686

同一運算子

同一運算子用於比較兩個物件的儲存單元,實際比較的是物件的位址。

運算子描述

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...