Python del 關鍵字的理解
阿新 • • 發佈:2018-12-16
網上看了很多部落格,寫一個總結留給以後的自己看。
並沒有想象中的那麼複雜,del 關鍵字簡單來說是 取消變數名與真正資料之間的引用 ,這一點不同於 C/Cpp 的 delete 關鍵字。
a = 1
b = a
print(id(a), id(b))
del a
print(b)
print(a)
"""
輸出結果:
140726007288864 140726007288864
1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
"""
python 的變數實質上是個引用,當執行 b = a
後,可以在下面的 print 看到 a 和 b 其實指向了同一塊記憶體。
而 del 的作用就是取消這種引用,而不是像 cpp 一樣取消了對這塊記憶體的使用權。可以看到,del a
之後,還能繼續列印 b 的值,而再次呼叫 a 則會報錯,因為 a 這個變數名已經與當前這段程式碼沒有關係了。
此外,del 還可以對列表操作:
lst = [1,2,3,4,5]
del lst[1]
print(lst)
"""
執行結果:
[1,3,4,5]
"""
執行結果表示 del 用來刪除列表中某一個位置的值,而其他位置順次前移。