python3:垃圾回收機制

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

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

a=[1,2,3]  #聲明變量後 引用計數 +1
b=a   #增長一個引用, 引用計數 +1
c=b #增長一個引用, 引用計數 +1

當咱們刪除web

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

print(a)

打印結果:算法

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

當計數器 保存的值爲0的時候,
也就是意味着沒有任何指針指向這塊存儲。svg

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

2.垃圾回收魔法函數

python 有個魔法函數 del 當回收的時候系統應該如何操做。指針

看下邊例子,比較簡單本身體會下,不作解釋 :code

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

a=A()
b=a
c=b

del a 
del b
del c

打印結果:xml

開始回收了