# ### __del__ 析構方法 __init__ 構造方法''' 觸發時機:當物件被記憶體**的時候自動觸發[1.頁面執行完畢**所有變數 2.所有物件被del的時候]
功能:物件使用完畢後資源**
引數:乙個self接受物件
返回值:無
'''class langdog():
def __init__(self,name):
self.name = name
def eat(self,something):
print("可愛的小狼{},喜歡吃{}".format(self.name,something))
def __del__(self):
print("__del__方法被觸發")
# (1) 1.頁面執行完畢**所有變數
obj = langdog("詹姆斯·狗蛋")
obj.eat("屎")
print("<===>")
# (2) 2.所有物件被del的時候
'''只有當所有指向該物件的變數都刪除的時候,才算真正的刪除該物件
'''obj2 = obj
print("<==start===>")
del obj
del obj2
print("<==end===>")
# (3) 用類來模擬檔案寫的操作
# fp = open("ceshi111.txt",mode="w",encoding="utf-8")
# fp.write("sfdsdf")
# fp.close()
# fp = open("ceshi111.txt",mode="r",encoding="utf-8")
# res = fp.read()
# fp.close()
# print(res)
print("<=111==>")
import os
class myfile():
# 判斷是否建立myfile該物件
def __new__(cls,filename):
if os.path.exists(filename):
return object.__new__(cls)
return print("該檔案不存在")
# 產生檔案物件
def __init__(self,filename):
self.fp = open(filename,mode="r",encoding="utf-8")
# 讀取檔案
def readfile(self):
res = self.fp.read()
return res
def __del__(self):
print(0)
# 自動觸發__del__ ,幫助我們關閉檔案
self.fp.close()
obj = myfile("ceshi222.txt")
res = obj.readfile()
print(res)
五 析構方法 del
前面我們學了 init 這個構造方法,在例項物件的時候自動觸發,也叫初始化,而析構方式是在執行del物件的時候,也就是在物件被清理之前自動觸發 del 的執行,那麼我們就可以在這方法裡面進行一些操作 class test def del self print 刪除物件,觸發了我 t test del...
物件導向 析構方法 del
構造方法 申請乙個空間 析構方法 釋放乙個空間之前執行 某物件借用了作業系統的資源,還要通過析構方法歸還回去 檔案資源 網路資源 垃圾 機制 class a def del self 析構方法 del a的物件 會自動觸發這個方法 print 執行我了 a a del a 物件的刪除 del pri...
Python中類的使用(3析構函式 del
析構函式 del 釋放物件是自動呼叫 class person object defrun self print run defeat self,food print eat food def init self,name,age,height,weight self.name name self....