# -*- 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...
'''