Python析构函数__del__定义原理解析
程序员文章站
2022-04-01 19:00:04
析构函数__del__定义:在类里定义,如果不定义,python 会在后台提供默认析构函数。析构函数__del__调用:a、使用del 显式的调用析构函数删除对象时:del对象名; cl...
析构函数__del__定义:在类里定义,如果不定义,python 会在后台提供默认析构函数。
析构函数__del__调用:
a、使用del 显式的调用析构函数删除对象时:del对象名;
class foo: def __init__(self,x): self.x=x def __del__(self): #在对象资源被释放时触发 print('-----del------') print(self) f=foo(100000) del f
b、当对象在某个作用域中调用完毕,跳出其作用域的同时析构函数也会被调用一次,这样可以用来释放内存空间。
class foo: def __init__(self,x): self.x=x def __del__(self): #在对象资源被释放时触发 print('-----del------') print(self) f=foo(100000) time.sleep(5) #time.sleep(5)执行完后,自动调用__del__()
注意:__del__只是删除了对象的引用,比如上面del f 只是f对象不再执行实例数据的存储空间了,实例数据并没有被删除,删除实例数据需要python本身的垃圾回收机制;
垃圾回收机制
python 采用垃圾回收机制来清理不再使用的对象;python 提供gc模块释放不再使用的对象,python 采用‘引用计数' 的算法方式来处理回收,
即:当某个对象在其作用域内不再被其他对象引用的时候,python 就自动清除对象;
python 的函数collect()可以一次性收集所有待处理的对象(gc.collect())
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: python爬取招聘要求等信息实例