我要糾正推薦答案中的說法!

創(chuàng)新互聯(lián)主營梁平網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件定制開發(fā),梁平h5小程序開發(fā)搭建,梁平網(wǎng)站營銷推廣歡迎梁平等地區(qū)企業(yè)咨詢
del并不是用來“刪除引用指向的內(nèi)存空間”,python中的del和c++中的delete是完全兩個(gè)概念,不要誤人子弟。。
一般來講,del是用來刪除變量的引用的,例如a = 1; del a,這里a是對1這個(gè)值的引用(python中所有的變量都可視作引用),而del a就是刪除這一引用關(guān)系,也就是說,1不再被a這個(gè)變量引用了,同時(shí)a這個(gè)變量名也從變量表中剔除了。
如果還是不太清楚,我舉這個(gè)例子你就明白了:
a = object()
b = a
del a
print b
print a # 該句會報(bào)a未定義的異常
這段代碼中,a引用了一個(gè)新對象object(),而b=a使得b也引用了這個(gè)對象,a和b雖然是兩個(gè)變量,但它們引用的是同一個(gè)對象,有點(diǎn)類似于c++中的兩個(gè)指針指向同一個(gè)對象。
而后面del a僅僅只是把a(bǔ)這個(gè)變量對object()的引用刪掉了,同時(shí)a的變量名也失效了,但并不表示object()這個(gè)對象被刪除了,它還在,并且b還引用著它呢。從后面print b能正常輸出就可以看出這一點(diǎn)。
python的內(nèi)存釋放采用的是引用計(jì)數(shù)機(jī)制,也就是當(dāng)一個(gè)對象沒有任何引用它的變量了,那么它就會自動被釋放,無需人工干預(yù)。
此外,del對于不同的對象也會有不同的功能,這取決于對象本身對__del__系統(tǒng)方法的實(shí)現(xiàn)。例如一個(gè)列表a = [1,2,3],del a[0]表示將列表的首項(xiàng)刪除,此時(shí)a就變成[2,3]了。如果是自定義的對象,那del的功能更是可以定義成你想要的任何樣子,詳情請參考python幫助中的__del__詞條。
Python想要進(jìn)行刪除自定義函數(shù)的,可以去按一下它的delete按鍵,然后或者是你可以點(diǎn)擊右鍵刪除。
無法刪除函數(shù)調(diào)用是指索引工作錯(cuò)誤。函數(shù)必須先定義,才能調(diào)用,否則會報(bào)錯(cuò)。Python是一種廣泛使用的解釋型、高級和通用的編程語言。Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會的GuidovanRossum創(chuàng)造,第一版發(fā)布于1991年,它是ABC語言的后繼者,也可以視之為一種使用傳統(tǒng)中綴表達(dá)式的LISP方言。
新聞標(biāo)題:python類函數(shù)刪除 Python刪除語句
分享網(wǎng)址:http://chinadenli.net/article46/hjiseg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)頁設(shè)計(jì)公司、微信公眾號、Google、服務(wù)器托管、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)