您的位置:首页 > 编程语言 > Python开发

python析构

2016-03-14 17:40 603 查看
__del__,析构函数不能手动调用,而是每个对象引用使用完之后系统自动回收垃圾,且按照字典顺序(A-Za-z)来回收。
class NewClass(object):
num_count = 0 # 所有的实例都共享此变量,即不单独为每个实例分配
def __init__(self,name):
self.name = name
NewClass.num_count += 1
def __del__(self):
NewClass.num_count -= 1
print ("Del",self.name)ewClass("Hello")
bb = aa
cc = aa
del bb,cc,aa
print ("Over")


这个例子手动删除掉全部的应用所以会先执行
__del__
再输出Over:

Del Hello
Over


这里例子中只手动删除一部分引用,则程序运行最后才会执行
__del__
,也就是先输出Over再执行
__del__


class NewClass(object):
num_count = 0 # 所有的实例都共享此变量,即不单独为每个实例分配
def __init__(self,name):
self.name = name
NewClass.num_count += 1
def __del__(self):
NewClass.num_count -= 1
print ("Del",self.name)
def test():
print ("aa")

aa = NewClass("Hello")
bb = aa
cc = aa
del bb,cc
print ("Over")


输出结果:

Over
Del Hello
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: