首頁 >後端開發 >Python教學 >python is和==的差別

python is和==的差別

(*-*)浩
(*-*)浩原創
2019-08-02 14:05:094687瀏覽

pythonis 與== 區別:

python is和==的差別

is用於判斷兩個變數引用物件是否為同一個, == 用來判斷引用變數的值是否相等。

a is b 相當於 id(a)==id(b),id() 能夠取得物件的記憶體位址。 (推薦學習:Python影片教學

如果a=10;b=a; 則此時a 和b 的記憶體位址一樣的;

但當a =[1,2,3]; 另b=a[:] 時,雖然a 和b 的值一樣,但記憶體位址不一樣。

如果此時定義a=10、b=10, 然後再對比a is b 會發現回傳的結果是True,這是因為在Python 中會實作建立一個小型的整形池,範圍為[ -5,256],為這些整形開啟好記憶體空間,當程式碼中定義該範圍內的整形時,不會再重新分配記憶體位址。

而我在Pycharm 中進行測試:

#coding=utf-8
a=100000000000;
b=100000000000;
print a is b

結果:

 True

後來查了資料才發現是: Python出於對效能的考慮,但凡是不可變對象,在同一個程式碼區塊中的對象,只有是值相同的對象,就不會重複創建,而是直接引用已經存在的對象。

更多Python相關技術文章,請造訪Python教學欄位學習!

以上是python is和==的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn