1. 程式人生 > >面向物件【day07】:解構函式(六)

面向物件【day07】:解構函式(六)

二、解構函式

一、概述

  解構函式,第一次聽說這個函式的名稱,那這個函式到底是幹嘛的呢?什麼才是解構函式吶?

  定義:在例項銷燬的時候呼叫的函式

二、解構函式定義

2.1 定義

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class  dog( object ):      "dog class"        def  __init__( self ,name):
         self .name  =  name        def  sayhi( self ):         
print ( "the dog {0} is sayhi" . format ( self .name))        def  __del__( self ):      #定義解構函式          print ( "del.....run..." )   =  dog( "alex" ) del  d import  time time.sleep( 5 )   #輸出 del .....run...

2.2 解構函式說明時候呼叫呢?

其實每一個物件都是一個應用,就像每一個房間都有門牌號一樣, 只要這個物件的引用被清空時,就會自動執行,就像上面的del d,其實python中有自動垃圾回收機制,會定時去的去回收一些被清空的應用,而解構函式就是在引用被清空之後會自動執行

2.3 解構函式的作用?

比如說server端接受很多客戶端的連線,當你手動遮蔽你的sever端的時候,這個時候客戶端還在正常的連線,如果sever端用類寫的,你就可以delete server端的同時,在__del__()寫一些東西,說去close掉很多客戶端的連線。說白了,解構函式就是做一些程式的收尾工作。