導航:首頁 > 編程語言 > Python內del

Python內del

發布時間:2023-05-03 01:14:49

python中del 語句的用法

python的del不同於C的free和C++的delete。

由於python都是引用,而python有GC機制,所以,del語句作用在變數上,而不是數據對象上。

② 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中的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問題

因為mylist = shoplist這個是引用,相當於顫好鍵C語言里的茄巧兩個指針,同時指向['apple', 'mango', 'carrot', 'banana']這個對象,如果其中一個改變了,另一個也會改變的,還有淺拷貝如mylist2 = .(shoplist),當shoplist改變時,mylist2也會改變,你襪岩可以看看python的引用、淺拷貝、深拷貝的區別或者看看Python對象是怎麼存儲的就知道了

⑤ Python del語句執行了什麼操作

del刪除的是變數,而不是數據。也就是說數據還在,刪除了引用

⑥ python的 del 函數是刪對象還是刪引用

1.首先介紹下python的對象引用

1)Python中不存在傳值調用,一切傳遞的都是對象引用,也可以認為是傳址調用。即Python不允許程序員選擇採用傳值或傳引用。Python參數傳遞採用的是「傳對象引用」的方式。實際上,這種方式相當於傳值和傳引用的一種綜合。如果函數參數收到的是一個可變對象(比如字典或者列表)的引用,就能修改對象的原始值——相當於通過「傳引用」來傳遞對象。如果函數收到的是一個不可變對象(比如數字、字元或者元組)的引用,就不能直接修改原始對象——相當於通過"傳值"來傳遞對象。


2)當復制列表或字典時,就復制了對象列表的引用,如果改變引用的值,則修改了原始的參數。


3)為了簡化內存管理,Python通過引用計數機制實現自動垃圾回收功能,Python中的每個對象都有一個引用計數,用來計數該對象在不同場所分別被引用了多少次。每當引用一次Python對象,相應的引用計數就增1,每當消毀一次Python對象,則相應的引用就減1,只有當引用計數為零時,才真正從內存中刪除Python對象。

2. 可變對象與不可變對象的概念與分類

Python在heap中分配的對象分成2類:

不可變對象(immutable object):Number(int、float、bool、complex)、String、Tuple. 採用等效於「傳引用」的方式。

可變對象(mutable object):List、dictionary.採用等效於「傳值」的方式。

3. del 是刪除引用而不是刪除對象,對象由自動垃圾回收機制(GC)刪除

看這個例子:

#!/usr/bin/evn python# -*- coding:utf-8 -*-# Author: antcolonies'''python中的內置方法del不同於C語言中的free和C++中的delete
(free和delete直接回收內存,當然存儲於該內存的對象也就掛了)
Python都是引用,垃圾回收為GC機制'''
'''if __name__ == '__main__':
a = 1 # 對象 1 被 變數a引用,對象1的引用計數器為1
b = a # 對象1 被變數b引用,對象1的引用計數器加1
c = a # 對象1 被變數c引用,對象1的引用計數器加1
del a # 刪除變數a,解除a對1的引用,對象1的引用計數器減1
del b # 刪除變數b,解除b對1的引用,對象1的引用計數器減1
print(c) # 1'''
if __name__=='__main__':
li=['one','two','three','four','five'] # 列表本身不包含數據'one','two','three','four','five',而是包含變數:li[0] li[1] li[2] li[3] li[4]
first=li[0] # 拷貝列表,也不會有數據對象的復制,而是創建新的變數引用
del li[0] print(li) # ['two','three','four','five']
print(first) # one
list1 = li del li print(list1) # ['two', 'three', 'four', 'five']# print(type(li)) # NameError: name 'li' is not defined

⑦ Python del 語句的用法是什麼樣

5.2. 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
此後再引用命名 a 會引發錯誤(直到另一個值賦給它為止)。我們在後面的內容中可以看到 del 的其它用法。

⑧ python 類 __del__

是的,理解沒有問題。
__方法__擁有所有普通方法的操作。不同的是,python預制的機制會自動調用這些方法,比如對象創建的時候會調用__init__(),銷毀對象會調用__del__()。它類似於其它程序語言里的系統事件,

⑨ python中del函數的用法

首先我們要清楚python中的del函數不同於C的free和C++的delete。
由於python都是引用,而python有GC機制,所以,del語句作用在變數上,而不是數據對象上。
我們來看一個例子:
del刪除的是變數,而不是數據。
我們再來看:
推薦教程:python教程以上就是小編分享的關於python中del函數的用法的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

閱讀全文

與Python內del相關的資料

熱點內容
微信聊天界面源碼 瀏覽:24
seo競價推廣點擊價格演算法公式 瀏覽:319
框架結構可以加密嗎 瀏覽:218
python編譯器怎麼清除 瀏覽:73
linux全局socks代理 瀏覽:611
php微信抽獎 瀏覽:771
壓縮演算法嵌入式移植 瀏覽:531
php新手小例子 瀏覽:233
按照醫生的演算法一周是幾天 瀏覽:805
三次b樣條曲線演算法 瀏覽:924
java7特性 瀏覽:555
愛山東app小學報名怎麼知道報沒報上 瀏覽:458
android獲取wifi信號 瀏覽:133
娜拉美妝app怎麼使用 瀏覽:760
有了源碼要買伺服器嗎 瀏覽:365
app怎麼查看自己的存款利息 瀏覽:515
碧藍安卓與b站有什麼區別 瀏覽:342
php靜態塊 瀏覽:719
ftpmget命令 瀏覽:475
源碼時代怎樣 瀏覽:415