解構子(Destructor)
有個建構子再來個解構子就不意外了吧?
解構子就是當一個實體如果被釋放記憶體時會執行的函數而調用他的方法為
class Cat:
def __init__(self):
print("I'm a Constructor")
def __del__(self):
print("I'm a Destructor")
def jump(self):
print("JUMP")
def eat(self):
print("EAT")
def bite(self):
print("BITE")
def grab(self):
print("GRAB")
animal = Cat() #print I'm a Constructor
animal = None #print I'm a Destructor
在這上面我們實例化了一個Cat觸發了Constructor
而我們又將animal指定為None,就導致了Cat的實體沒有人參照(reference),被系統自動回收記憶體
而這個Cat的實體就掛了,因此再掛掉之前會觸發del這個destructor這個method