
_ _del_ _()方法
创建对象后,python解释器默认调用_ _init_ _()方法;
当删除一个对象时,python解释器也会默认调用一个方法,这个方法为_ _del_ _()方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | class Person(object):
#初始化方法,创建对象会被自动调用
def __init__(self, name):
print ( "__init__方法被调用" )
self.__name = name
#析构方法:当对象删除是会被调用
def __del__(self):
print ( "__del__方法被调用" )
def getName(self):
return self.__name
def setName(self,newName):
if len(newName)>=5:
self.__name = newName
else :
print ( "Error:输入的名字长度不够" )
xiaoming = Person( "Se7eN" )
print ( "------马上删除xiaoming------" )
del xiaoming
laowang = Person( "laowang" )
laowang2 = laowang
laowang3 = laowang
print ( "------马上删除laowang------" )
del laowang
print ( "------马上删除laowang2------" )
del laowang2
print ( "------马上删除laowang3------" )
del laowang3
|
相关推荐:《Python视频教程》
运行结果为:
1 2 3 4 5 6 7 8 | __init__方法被调用
------马上删除xiaoming------
__del__方法被调用
__init__方法被调用
------马上删除laowang------
------马上删除laowang2------
------马上删除laowang3------
__del__方法被调用
|
说明:
当有1个变量保存了对象的引用时,此对象的引用计数就会加1。
当使用del删除变量指向的对象时,如果对象的引用计数不为1,比如3,那么此时只会让这个对象的引用计数减1,即变为2,当再次调用del时,变为1,如果在调用1次的时候,此时才会把对象删除。
相关推荐:
python的魔法方法是什么