class Test(object): def __init__(self, name): self.name = name print('这是构造函数') def say_hi(self): print('hell, %s' % self.name) def __del__(self): print('这是析构函数') obj = Test('bigberg') obj.say_hi() del obj #输出 这是构造函数 hello bigberg 这是析构函数
用來初始化類別的內容部狀態,Python提供的建構函式__init__(),也就是當該類別被實例化的時候就會執行該函數,__init__()方法是可選的,如果不提供,Python 會給出預設的__init__方法。
「__del__」就是一個析構函數了,當使用del 刪除物件時,會呼叫他本身的析構函數,另外當對象在某個作用域中調用完畢,在跳出其作用域的同時析構函數也會被呼叫一次,這樣可以用來釋放記憶體空間。
__del__()也是可選的,如果不提供,則Python 會在後台提供預設析構函數
s = '123' print('del...running') del s
當我們用del刪除一個物件時,其實並沒有直接清除該物件的記憶體空間。 Python 採用『引用計數』 的演算法方式來處理回收,即:當某個物件在其作用域內不再被其他物件引用的時候,Python 就會自動清除物件。
而析構函數 __del__()在引用的時候就會自動清除被刪除物件的記憶體空間。
建構子:
用於初始化類別的內容部狀態,Python提供的建構子式__init__();
也就是當該類別被實例化的時候就會執行該函數。那我們就可以把要先初始化的屬性放到這個函數裡面。如下程式:
__init__()方法是可選的,如果不提供,Python 會給予預設的__init__方法
一般資料的取得需要定義的get和set方法
以上是python析構函式與建構子的用法講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!