歡迎來(lái)到培訓(xùn)無(wú)憂網(wǎng)!
咨詢熱線 400-001-5729
2022-01-10 10:51:12|已瀏覽:128次

Python內(nèi)部使用引用計(jì)數(shù),來(lái)保持追蹤內(nèi)存中的對(duì)象,Python內(nèi)部記錄了對(duì)象有多少個(gè)引用,即引用計(jì)數(shù),當(dāng)對(duì)象被創(chuàng)建時(shí)就創(chuàng)建了一個(gè)引用計(jì)數(shù),當(dāng)對(duì)象不再需要時(shí),這個(gè)對(duì)象的引用計(jì)數(shù)為0時(shí),它被垃圾回收。所有這些都是自動(dòng)完成,不需要像C一樣,人工干預(yù),從而提高了程序員的效率和程序的健壯性。
在Python語(yǔ)言內(nèi)部,當(dāng)一個(gè)對(duì)象的引用計(jì)數(shù)為0時(shí),它將被垃圾收集機(jī)制處理掉。當(dāng)遇到兩個(gè)對(duì)象a和b相互引用時(shí)的這種情況時(shí),del語(yǔ)句可以減少a和b的引用計(jì)數(shù),并銷毀用于引用底層對(duì)象的名稱。
需要注意的是,并不是每個(gè)對(duì)象都包含一個(gè)對(duì)其他對(duì)象的應(yīng)用,所以這種情況下引用計(jì)數(shù)不會(huì)歸零,對(duì)象也不會(huì)被銷毀,這就可能會(huì)導(dǎo)致內(nèi)存泄露。所以為了解決這問(wèn)題,解釋器會(huì)定期執(zhí)行一個(gè)循環(huán)檢測(cè)器,搜索不可訪問(wèn)對(duì)象的循環(huán)并進(jìn)行刪除。
本文由培訓(xùn)無(wú)憂網(wǎng)千鋒教育專屬課程顧問(wèn)整理發(fā)布,更多Python開發(fā)培訓(xùn)課程歡迎關(guān)注培訓(xùn)無(wú)憂網(wǎng)Python開發(fā)頻道或添加老師微信:15033336050
注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://www.hebeijilong.cn/news-id-14156.html 違者必究!部分文章來(lái)源于網(wǎng)絡(luò)由培訓(xùn)無(wú)憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注python培訓(xùn)頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050