1. 程式人生 > >python3:垃圾回收機制

python3:垃圾回收機制

1.垃圾回收機制演算法採用的是 引用計數

直接給概念,小夥伴很難理解,我用一個例子保證你get到。

a=[1,2,3]  #宣告變數後 引用計數 +1
b=a   #增加一個引用, 引用計數 +1
c=b #增加一個引用, 引用計數 +1

當我們刪除

del a  #刪除a 這個指標,並引用計數 -1
print(b) 

print(a)

列印結果:

[1, 2, 3]
NameError: name 'a' is not defined

當計數器 儲存的值為0的時候,
也就是意味著沒有任何指標指向這塊儲存。

垃圾回收開始清除這塊沒有任何 指標的儲存。

2.垃圾回收魔法函式

python 有個魔法函式 del 當回收的時候系統應該如何操作。

看下邊例子,比較簡單自己體會下,不做解釋 :

class A:
    def __del__(self):
        print("開始回收了")

a=A()
b=a
c=b

del a 
del b
del c

列印結果:

開始回收了