1. 程式人生 > 實用技巧 >構造方法和析構方法

構造方法和析構方法

一、構造方法

1、構造方法是Python類中的內建方法之一,它的方法名為__init__,在建立一個類物件時會自動執行,負責完成新建立物件的初始化工作。 2、只有一個引數的構造方法示例
class Student: #定義Student類 
    def __init__(self): #定義構造方法 
        print('構造方法被呼叫!') 
        self.name='未知' #將self對應物件的name屬性賦值為“未知” 
    def PrintInfo(self): #定義普通方法PrintInfo 
        print('姓名:%s'%self.name) #
輸出姓名資訊 if __name__=='__main__': stu=Student() #建立Student類物件stu,自動執行構造方法 stu.PrintInfo() #通過stu物件呼叫PrintInfo方法
構造方法被呼叫! 姓名:未知 3、帶預設引數的構造方法示例
class Student: #定義Student類 
    def __init__(self,name='未知'): #定義構造方法 
        print('構造方法被呼叫!') 
        self.name=name #將self對應物件的name屬性賦為形 #參name的值 
def PrintInfo(self): #定義普通方法PrintInfo print('姓名:%s'%self.name) #輸出姓名資訊 if __name__=='__main__': stu1=Student() #建立Student類物件stu1,自動執行構 #造方法 stu2=Student('李曉明') stu1.PrintInfo() #通過stu1物件呼叫PrintInfo方法 stu2.PrintInfo() #通過stu1物件呼叫PrintInfo方法
構造方法被呼叫! 構造方法被呼叫! 姓名:未知 姓名:李曉明 二、析構方法 1、析構方法是類的另一個內建方法,它的方法名為__del__
,在銷燬一個類物件時會自動執行,負責完成待銷燬物件的資源清理工作,如關閉檔案等。 2、類物件銷燬有如下三種情況: (1)區域性變數的作用域結束。 (2)使用del刪除物件。 (3)程式結束時,程式中的所有物件都將被銷燬。 3、析構方法程式碼示例
class Student: #定義Student類 
    def __init__(self,name): #定義構造方法 
        self.name=name #將self對應物件的name屬性 #賦值為形參name的值 
        print('姓名為%s的物件被建立!'%self.name) 
    def __del__(self): #定義析構方法 
        print('姓名為%s的物件被銷燬!'%self.name) 
    def func(name): 
        stu=Student(name) #建立Student類物件stu 
if __name__=='__main__': 
    stu1=Student('李曉明') #建立Student類物件stu1 
    stu2=Student('馬紅') #建立Student類物件stu2 
    stu3=stu2 
    del stu2 #使用del刪除stu2物件 
    func('張剛') #呼叫func函式 
    del stu3 #使用del刪除stu3物件 
    stu4=Student('劉建') #建立Student類物件stu4   
姓名為李曉明的物件被建立! 姓名為馬紅的物件被建立! 姓名為張剛的物件被建立! 姓名為張剛的物件被銷燬! 姓名為馬紅的物件被銷燬! 姓名為劉建的物件被建立! 姓名為李曉明的物件被銷燬! 姓名為劉建的物件被銷燬! 注意:如果多個變數對應同一片記憶體空間,則只有這些變數都刪除後才會銷燬這片存空間中所儲存的物件,也才會自動執行析構方法。