__del__()方法
專業(yè)從事成都網(wǎng)站設(shè)計、網(wǎng)站制作,高端網(wǎng)站制作設(shè)計,微信小程序,網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團隊竭力真誠服務(wù),采用H5建站+CSS3前端渲染技術(shù),成都響應式網(wǎng)站建設(shè)公司,讓網(wǎng)站在手機、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項小組,與您實時在線互動,隨時提供解決方案,暢聊想法和感受。
python_del用法:
import time
class Animal(object):
# 初始化方法
# 創(chuàng)建完對象后會自動被調(diào)用
def __init__(self, name):
print('__init__方法被調(diào)用')
self.__name = name
# 析構(gòu)方法
# 當對象被刪除時,會自動被調(diào)用
def __del__(self):
print("__del__方法被調(diào)用")
print("%s對象馬上被干掉了..."%self.__name)
# 創(chuàng)建對象
dog = Animal("哈皮狗")
# 刪除對象
del dog
cat = Animal("波斯貓")
cat2 = cat
cat3 = cat
print("---馬上 刪除cat對象")
del cat
print("---馬上 刪除cat2對象")
del cat2
print("---馬上 刪除cat3對象")
del cat3
print("程序2秒鐘后結(jié)束")
time.sleep(2)
python的del不同于C的free和C++的delete。
由于python都是引用,而python有GC機制,所以,del語句作用在變量上,而不是數(shù)據(jù)對象上。
del語句刪除一些對象的引用,而不是數(shù)據(jù)。
首先我們要清楚python中的del函數(shù)不同于C的free和C++的delete。
由于python都是引用,而python有GC機制,所以,del語句作用在變量上,而不是數(shù)據(jù)對象上。
我們來看一個例子:
del刪除的是變量,而不是數(shù)據(jù)。
我們再來看:
推薦教程:python教程以上就是小編分享的關(guān)于python中del函數(shù)的用法的詳細內(nèi)容希望對大家有所幫助,更多有關(guān)python教程請關(guān)注環(huán)球青藤其它相關(guān)文章!
我要糾正推薦答案中的說法!
del并不是用來“刪除引用指向的內(nèi)存空間”,python中的del和c++中的delete是完全兩個概念,不要誤人子弟。。
一般來講,del是用來刪除變量的引用的,例如a = 1; del a,這里a是對1這個值的引用(python中所有的變量都可視作引用),而del a就是刪除這一引用關(guān)系,也就是說,1不再被a這個變量引用了,同時a這個變量名也從變量表中剔除了。
如果還是不太清楚,我舉這個例子你就明白了:
a = object()
b = a
del a
print b
print a # 該句會報a未定義的異常
這段代碼中,a引用了一個新對象object(),而b=a使得b也引用了這個對象,a和b雖然是兩個變量,但它們引用的是同一個對象,有點類似于c++中的兩個指針指向同一個對象。
而后面del a僅僅只是把a這個變量對object()的引用刪掉了,同時a的變量名也失效了,但并不表示object()這個對象被刪除了,它還在,并且b還引用著它呢。從后面print b能正常輸出就可以看出這一點。
python的內(nèi)存釋放采用的是引用計數(shù)機制,也就是當一個對象沒有任何引用它的變量了,那么它就會自動被釋放,無需人工干預。
此外,del對于不同的對象也會有不同的功能,這取決于對象本身對__del__系統(tǒng)方法的實現(xiàn)。例如一個列表a = [1,2,3],del a[0]表示將列表的首項刪除,此時a就變成[2,3]了。如果是自定義的對象,那del的功能更是可以定義成你想要的任何樣子,詳情請參考python幫助中的__del__詞條。
文章標題:del函數(shù)python del函數(shù)的用法
標題路徑:http://www.rwnh.cn/article34/doohdpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、小程序開發(fā)、微信公眾號、定制開發(fā)、外貿(mào)建站、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)