今天偶然遇到一個問題:
a = [1, 2, 3, 4]
b = a
del a[:]
a --> []
b --> []
a = [1, 2, 3, 4]
b = a
del a
a
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-38-3f786850e387> in <module>()
----> 1 a
NameError: name 'a' is not defined
b --> [1, 2]
一瞬間有點反應(yīng)不過來,不過仔細(xì)想想也就大概明白了。
del a[:] 相當(dāng)于刪除 a 中的每個元素,a 這個引用仍然在,同樣的也會刪除 b 中每個元素。而 del a 是直接刪除 a 這個引用,但是 b 這個引用仍然在。