del 析構方法 init

2022-06-30 11:03:15 字數 1535 閱讀 4855

# ### __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....