python 3.6
.0 |anaconda 4.3
.1 (64-bit)| (default, dec 23
2016, 11:57:41) [msc v.1900
64 bit (amd64)] on win32
or"license"
for more information.
>>> obj1 = ["a", "b", "c"]
>>> obj2 = obj1
>>> obj1 is obj2
true
>>> id(obj1)
2104722816712
>>> id(obj2)
2104722816712
>>> obj2 = obj1[:]
>>> obj2 is obj1
false
>>> id(obj1)
2104722816712
>>> id(obj2)
2104722796360
>>> obj1 == obj2
true
實現原理is 比較的是兩者是否是同乙個物件,所以比較的是記憶體位址(id是否相同)。
== 是值比較。不可變物件,,例如 int,str,它會直接進行值比較。對於python已知的物件,會呼叫他們的eq函式來比較。(其實已知的物件應該也是通過內建的eq函式來比較的)。對於自定義的物件,如果實現了eq函式,就會使用它比較,如果沒有實現,效果和 == 是一樣的。
>>> obj1 = 1
>>> obj2 = 1
>>> obj1 is obj2
true
>>> obj1 = 257
>>> obj2 = 257
>>> obj1 is obj2
false
>>> obj1 =256
>>> obj2 =256
>>> obj1 is obj2
true
>>> obj2 = -5
>>> obj1 = -5
>>> obj1 is obj2
true
>>> obj2 = -6
>>> obj1 = -6
>>> obj1 is obj2
false
#-5至257之間使用相同的數字,指向的同一片記憶體空間
python深入 Python的深入理解
處理檔案和目錄 python 3 帶有乙個模組叫做 os,代表 作業系統 operating system os 模組 包含非常多的函式用於獲取 和修改 本地目錄 檔案程序 環境變數等的資訊。python 盡最大的努力在所有支援的作業系統上提供乙個統一的api,這樣你就可以在保證程式能夠在任何的計算...
Python的深入理解
處理檔案和目錄 python 3 帶有乙個模組叫做 os,代表 作業系統 operating system os 模組 包含非常多的函式用於獲取 和修改 本地目錄 檔案程序 環境變數等的資訊。python 盡最大的努力在所有支援的作業系統上提供乙個統一的api,這樣你就可以在保證程式能夠在任何的計算...
深入理解Python類
c 中,類有兩個關鍵的內建函式,建構函式和析構函式。在python中,其實也有類似的函式,他們就是 def init self pass def del self pass def enter self pass def exit self pass在物件建立時執行操作。在物件析構時執行操作。注意 ...