类的专有方法(__del__)

# -*- coding: utf-8 -*-
#python 27
#xiaodeng
#http://www.bubuko.com/infodetail-313791.html


#类的专有方法(__del__)
'PS:析构函数只需要明白其用途,目前无需深入学习'


#__init__
#作用:当一个类实例删除时被调用
#析构函数与构造函数相反,当对象脱离其作用域时(对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做清理善后的工作;开辟了一个内存空间之后,利用完毕了要释放内存
#__del__()也是可选的,如果不提供,python在后台会提供默认析构函数。
#如果要显式的调用析构函数,可以使用del关键字,如:del对象名
#析构函数是在生命周期里最后一个被调用的函数,所有删除、释放资源都常常会在这个函数内调用


class Auto():
    def __init__(self,color):
        self.__color=color
        print '构造函数:',self.__color

    def __del__(self):#定义析够函数
        self.__color="Red"
        print self.__color
        print "Release..."

    def getColor(self):
        print self.__color

if __name__=='__main__':
    car=Auto('blue')
    car.getColor()
    #首先调用getColor方法,执行print self.__color得输出结果blue,
    #如果在这里,所有的程序都执行完毕,将执行del析构函数,这时的self.__color应该是"Red"
    del car

    #删除实例化car后,再次调用car.getColor()会报错,
#因为car没有进行实例化无法调用!!
#car.getColor()#NameError: name 'car' is not defined ''' 构造函数: blue blue Red Release... '''
posted @ 2015-10-12 19:34  Xiao|Deng  阅读(462)  评论(0编辑  收藏  举报