python學習之記憶體機制

來源:互聯網
上載者:User

標籤:lock   pen   code   建立   數組   記憶體位址   對象數組   建立   元組   

不可變對象(字串、元組)1. a = 1

首先在記憶體中建立對象1,並記錄對象的引用計數為1次。

id(a) 查看變數a引用的對象的記憶體位址

2. b = 1

記憶體中已存在對象1,變數b引用對象1,則對象1的引用計數為2次。

id(b) 變數b和變數a引用的是同一個對象,記憶體位址相同。

3. a = a + 1

在記憶體中建立對象2,變數a不再引用原有對象1(引用次數減為1),開始引用對象2(引用次數增為1)

a = 1 重新執行a=1,a依然指向原有對象(因為還是1)

注意:僅對短字元有效,長字串每次new對象,即便相同,也會重建立立記憶體;這裡目前沒有查到相關資料,但確實如此。
可變對象(數組、字典、集合)1. a = []

在記憶體中建立數組對象,記錄對象引用次數為1次(被a引用)

2. b = []

在記憶體中重新建立新對象,記錄對象引用次數為1次(被b引用),a和b所在記憶體位址不相同

3. a.append(1)

a依然指向原有的記憶體位址,因為是可變對象,所以不需要在記憶體中重建新對象

4. a = []

重新在記憶體建立可變對象[],a不再指向原有對象(引用次數變為0,被回收)

python學習之記憶體機制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.