面向对象【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掉很多客户端的连接。说白了,析构函数就是做一些程序的收尾工作。

猜你喜欢

转载自www.cnblogs.com/luoahong/p/9895415.html