电竞比分网-中国电竞赛事及体育赛事平台

分享

del真正含義

 融水公子 2018-09-11
注意一個問題:
python中的del用法比較特殊,新手學(xué)習(xí)往往產(chǎn)生誤解,弄清del的用法,
可以幫助深入理解python的內(nèi)存方面的問題。
python的del不同于C的free和C++的delete。
由于python都是引用,而python有GC機(jī)制,所以,del語句作用在變量上,而不是數(shù)據(jù)對象上。
del刪除的是變量,而不是數(shù)據(jù)。
您可以通過使用del語句刪除單個或多個對象的引用。例如:
del var
del var_a, var_b
實例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
a=1       # 對象 1 被 變量a引用,對象1的引用計數(shù)器為1
b=a       # 對象1 被變量b引用,對象1的引用計數(shù)器加1
c=a       #1對象1 被變量c引用,對象1的引用計數(shù)器加1
del(a)     #刪除變量a,解除a對1的引用
del(b)     #刪除變量b,解除b對1的引用
print(c)  #最終變量c仍然引用1
#將a和b del之后,1的引用計數(shù)仍然為1,所以不會被清除


實例2:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
li=[1,2,3,4,5]  #列表本身不包含數(shù)據(jù)1,2,3,4,5,而是包含變量:li[0] li[1] li[2] li[3] li[4] 
first=li[0]     #拷貝列表,也不會有數(shù)據(jù)對象的復(fù)制,而是創(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
-----------------------------------------------------------------------






分享知識,分享快樂!希望中國站在編程之巔!

               ----

公眾微信號:rsgz520

360圖書館館號:rsgz002.360doc.com 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多