面向物件【day07】:解構函式(六)
阿新 • • 發佈:2018-11-02
二、解構函式
一、概述
解構函式,第一次聽說這個函式的名稱,那這個函式到底是幹嘛的呢?什麼才是解構函式吶?
定義:在例項銷燬的時候呼叫的函式
二、解構函式定義
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..."
)
d
=
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掉很多客戶端的連線。說白了,解構函式就是做一些程式的收尾工作。