1. 程式人生 > >python 中自動化記憶體管理問題

python 中自動化記憶體管理問題

python 中自動化記憶體管理

問題:
使用賦值語句
a = 10000
b = 20000

a = a + b # 發生了什麼?
c = a # 發生了什麼?

a = 10000 記憶體中建立一個10000物件,用變數a和10000繫結繫結

b = 20000 記憶體中建立一個 20000物件,用變數b和20000物件綁

a = a + b 計算物件a 和 b 的和,建立一個30000的物件,a 解除與10000物件的繫結,重新繫結30000這個物件

c = a 變數c和變數a繫結同一個物件

注:在python中,變數沒有型別
關聯/繫結/引用都是指一個變數和一個物件的關聯關係

del 語句(delete簡寫)
作用:用於刪除變數,同事解除此變數與物件的繫結關係
,如果可能則釋放物件
  
語法:
del 變數名

自動化記憶體管理和引用計數:
每個物件會記錄有幾個變數引用自身,當引用的數量為0時,此物件被銷燬,此種自動化記憶體管理的方式叫引用計數

如上面的問題中的物件 10000如果沒有變數與其繫結,會被隨時銷燬