del解構函式
# ### __del__ 魔術方法(析構方法)
'''
觸發時機:當物件被記憶體回收的時候自動觸發[1.頁面執行完畢回收所有變數 2.所有物件被del的時候]
功能:物件使用完畢後資源回收
引數:一個self接受物件
返回值:無
'''
# (1) 基本語法
class Lion():
def __init__(self,name):
self.name = name
def __del__(self):
print("析構方法被觸發 ... ")
# 觸發方式一: 頁面執行完畢回收所有變數
obj1 = Lion("辛巴")
# 觸發方式二: 物件的所有引用消失
obj2 = obj1
obj3 = obj1
print(obj2 , obj1 ,obj3)
print("<====start===>")
del obj1
del obj2
del obj3
print("<====end===>")
模式檔案的wtih類
# (2) 模擬檔案操作
import os
class ReadFile():
# 根據檔案是否存在,建立物件
def __new__(cls,filename):
if os.path.exists(filename):
return object.__new__(cls)
else:
print("抱歉,沒有這個檔案")
# 開啟檔案
def __init__(self,filename):
self.fp = open(filename,mode="r",encoding="utf-8")
# 關閉檔案
def __del__(self):
self.fp.close()
# 讀取檔案
def readcontent(self):
return self.fp.read()
obj = ReadFile("0.py")
print(obj.readcontent())