Ⅰ python中的delete函數是如何使用的
我要糾正推薦答案中的說法!
del並不是用來「刪除引用指向的內存空間」,python中的del和c++中的delete是完全兩個概念,不要誤人子弟。。
一般來講,del是用來刪除變數的引用的,例如a = 1; del a,這里a是對1這個值的引用(python中所有的變數都可視作引用),而del a就是刪除這一引用關系,也就是說,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的內存釋放採用的是引用計數機制,也就是當一個對象沒有任何引用它的變數了,那麼它就會自動被釋放,無需人工干預。
此外,del對於不同的對象也會有不同的功能,這取決於對象本身對__del__系統方法的實現。例如一個列表a = [1,2,3],del a[0]表示將列表的首項刪除,此時a就變成[2,3]了。如果是自定義的對象,那del的功能更是可以定義成你想要的任何樣子,詳情請參考python幫助中的__del__詞條。
Ⅱ python 類中的__del__()為什麼要調用父類的__del__()
第一個__del__()該調用誰的呢?
不要忘記首先調用父類的__del__()
Ⅲ python 類 __del__
是的,理解沒有問題。
__方法__擁有所有普通方法的操作。不同的是,python預制的機制會自動調用這些方法,比如對象創建的時候會調用__init__(),銷毀對象會調用__del__()。它類似於其它程序語言里的系統事件,
Ⅳ python中del 語句的用法
python的del不同於C的free和C++的delete。
由於python都是引用,而python有GC機制,所以,del語句作用在變數上,而不是數據對象上。
Ⅳ python 關鍵字 del 用法
__del__()方法
Ⅵ python裡面元組是什麼意思
元組其實和列表的差距並不是很大,但是也有其獨立的特點:
①元組是一系列不可變的Python對象。元組是一種序列,就像列表一樣;列表通常用來存儲相同類型的數據;而元組在實際開發中,通常用來存儲不同類型的數據。
②元組和列表之間的主要區別是元組不能像列表那樣改變元素的值,可以簡單地理解為「只讀列表」。 元組使用小括弧 -(),而列表使用方括弧 -[];
③元組創建很簡單,只需要在括弧中添加元素,並使用逗號隔開即可。
<p class="ztext-empty-paragraph">
創建元組:需使用逗號分隔值放入小括弧的一個序列。 或者,也可以將這些逗號分隔值放在括弧之間。
元組元素的訪問:請使用方括弧進行指定索引切片或索引,以獲取該索引處的值。
更改元組:元組是不可變的,但是可以使用現有元組的一部分來創建新的元組。
刪除元組元素:元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個元組。
python元組構建了對象的簡單組合,元組與列表非常相似,但元組不能在原位置修改,通常寫成包在圓括弧中的一系列項,且具有列表的大多數屬性。
元組是:
任意對象的有序集合:與字元串和列表類似,元組是一個基於位置的有序對象集合,可以嵌入任何類型的對象。
通過偏移量存取:同字元串、列表一樣,元組中的元素也是通過偏移量來訪問的,支持索引和分片。
屬於「不可變序列」:與字元串相同,元組是不可變的,不支持適用於列表的任何原位置修改操作。
固定長度、多樣性、任意嵌套:元組不可變,所以不能改變元組長度,元組可以包含復合對象,支持任意嵌套。
對象引用數組:與列表相似,元組也是對象引用的數組,存儲了指向其他對象的存取點。
Ⅶ del是python的保留字嗎
不是的,del是python中的關鍵字。
python控制語句:
if語句,當條件成立時運行語句塊。經常與else, elif(相當於else if) 配合使用。
for語句,遍歷列表、字元串、字典、集合等迭代器,依次處理迭代器中的每個元素。
while語句,當條件為真時,循環運行語句塊。
try語句,與except,finally配合使用處理在程序運行中出現的異常情況。
class語句,用於定義類型。
def語句,用於定義函數和類型的方法。
pass語句,表示此行為空,不運行任何操作。
assert語句,用於程序調試階段時測試運行條件是否滿足。
with語句,Python2.6以後定義的語法,在一個場景中運行語句塊。比如,運行語句塊前加密,然後在語句塊運行退出後解密。
yield語句,在迭代器函數內使用,用於返回一個元素。自從Python 2.5版本以後。這個語句變成一個運算符。
raise語句,製造一個錯誤。
import語句,導入一個模塊或包。
from … import語句,從包導入模塊或從模塊導入某個對象。
import … as語句,將導入的對象賦值給一個變數。
in語句,判斷一個對象是否在一個字元串/列表/元組里。
Ⅷ python中del函數的用法
首先我們要清楚python中的del函數不同於C的free和C++的delete。
由於python都是引用,而python有GC機制,所以,del語句作用在變數上,而不是數據對象上。
我們來看一個例子:
del刪除的是變數,而不是數據。
我們再來看:
推薦教程:python教程以上就是小編分享的關於python中del函數的用法的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!
Ⅸ 關於python中__del__()方法
官網上試了一下並沒有出現這種情況...