__del__()方法
創建物件后,python解釋器默認呼叫__init__()方法;
當洗掉物件時,python解釋器也會默認呼叫一個方法,這個方法為__del__()方法
class Hero(object):
# 初始化方法
# 創建完物件后會自動被呼叫
def __init__(self, name):
print('__init__方法被呼叫')
self.name = name
# 當物件被洗掉時,會自動被呼叫
def __del__(self):
print("__del__方法被呼叫")
print("%s 被 GM 干掉了..." % self.name)
# 創建物件
taidamier = Hero("泰達米爾")
# 洗掉物件
print("%d 被洗掉1次" % id(taidamier))
del(taidamier)
print("--" * 10)
gailun = Hero("蓋倫")
gailun1 = gailun
gailun2 = gailun
print("%d 被洗掉1次" % id(gailun))
del(gailun)
print("%d 被洗掉1次" % id(gailun1))
del(gailun1)
print("%d 被洗掉1次" % id(gailun2))
del(gailun2)
總結
-
當有變數保存了一個物件的參考時,此物件的參考計數就會加1;
-
當使用del() 洗掉變數指向的物件時,則會減少物件的參考計數,如果物件的參考計數不為1,那么會讓這個物件的參考計數減1,當物件的參考計數為0的時候,則物件才會被真正洗掉(記憶體被回收)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/39721.html
標籤:Python
上一篇:面向物件--類屬性和實體屬性
下一篇:面向物件-私有權限
