del解構函式

江寒雨發表於2024-03-17

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())

相關文章