Python中的del用法


python中的del用法比較特殊,新手學習往往產生誤解,弄清del的用法,可以幫助深入理解python的內存方面的問題。

python的del不同於C的free和C++的delete。

由於python都是引用,而python有GC機制,所以,del語句作用在變量上,而不是數據對象上。

if __name__ == '__main__':  
    a = 1       # 對象 1 被 變量a引用,對象1的引用計數器為1
    b = a       # 對象1 被變量b引用,對象1的引用計數器加1
    c = a       # 1對象1 被變量c引用,對象1的引用計數器加1
    del a     # 刪除變量a,解除a對1的引用
    del b     # 刪除變量b,解除b對1的引用
    print(c)  # 最終變量c仍然引用1

del刪除的是變量,而不是數據。

if __name__ == '__main__':  
    li = [1, 2, 3, 4, 5]
    # 列表本身不包含數據1,2,3,4,5,而是包含變量:li[0] li[1] li[2] li[3] li[4]   
    first = li[0]     # 拷貝列表,也不會有數據對象的復制,而是創建新的變量引用  
    del li[0]
    print(li)      # 輸出[2, 3, 4, 5]  
    print(first)   # 輸出 1 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM