注意一個問題: python中的del用法比較特殊,新手學習往往產生誤解,弄清del的用法, 可以幫助深入理解python的內存方面的問題。 python的del不同于C的free和C++的delete。 由于python都是引用,而python有GC機制,所以,del語句作用在變量上,而不是數據對象上。 del刪除的是變量,而不是數據。 您可以通過使用del語句刪除單個或多個對象的引用。例如: del var del var_a, var_b 實例: #!/usr/bin/python # -*- coding: UTF-8 -*- 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 #將a和b del之后,1的引用計數仍然為1,所以不會被清除 實例2: #!/usr/bin/python # -*- coding: UTF-8 -*- li=[1,2,3,4,5] #列表本身不包含數據1,2,3,4,5,而是包含變量:li[0] li[1] li[2] li[3] li[4] first=li[0] #拷貝列表,也不會有數據對象的復制,而是創(chuàng)建新的變量引用 del li[0] print(li) #輸出[2, 3, 4, 5] print(first) #輸出 1 ![]() ----------------------------------------------------------------------- del 語句 使用 del 語句可以從一個列表中依索引而不是值來刪除一個元素。這與使用 pop() 返回一個值不同??梢杂?del 語句從列表中刪除一個切割,或清空整個列表(我們以前介紹的方法是給該切割賦一個空列表)。例如: >>> a = [-1, 1, 66.25, 333, 333, 1234.5] >>> del a[0] >>> a [1, 66.25, 333, 333, 1234.5] >>> del a[2:4] >>> a [1, 66.25, 1234.5] >>> del a[:] >>> a [] 也可以用 del 刪除實體變量: >>> del a ----------------------------------------------------------------------- 分享知識,分享快樂!希望中國站在編程之巔!
360圖書館館號:rsgz002.360doc.com |
|