您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么在python中例_del_對數據進行還原,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
_del_在對象銷毀時被調用,往往用于清除數據或還原環境等操作,比如在類中的其他普通方法中實現了插入數據庫的語句,當對象被銷毀時我們需要將數據還原,那么這時可以在__del__方法中實現還原數據庫數據的功能。__del__被成為析構方法,同樣和C++中的析構方法類似。
下面一個例子的執行順序可以讓大家加深對其的理解。
class Demo: def __init__(self): print('調用__init__方法') def func(self): print('這是一個普通的方法') def __del__(self): print('調用__del__方法') d = Demo() d.func()
當d.func()執行后,對象d沒有在任何一個地方被繼續引用,這時Python的垃圾回收機制會主動回收這個對象,即銷毀d,此時自動調用__del__方法,運行結果如下。
調用__init__方法
這是一個普通的方法
調用__del__方法
注意:del 語句在刪除變量時,是解除變量對數據的引用,而不是直接刪除數據,不是把內存地址刪了,只是刪除了引用,數據就變為了一個可回收的對象,然后內存會被不定期回收。
不能定義任何名叫 del 的函數或者變量:
>>> def del(a): File "<stdin>", line 1 def del(a): ^ SyntaxError: invalid syntax
相信經過本篇對于python中_del_的學習,小伙伴們已經可以獨立進行數據的還原了。
python中的del用法擴展
由于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
關于怎么在python中例_del_對數據進行還原就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。