时间:2021-05-22
析构函数__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 fB、当对象在某个作用域中调用完毕,跳出其作用域的同时析构函数也会被调用一次,这样可以用来释放内存空间。
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())
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
析构函数用于析构类的实例。备注不能在结构中定义析构函数。只能对类使用析构函数。一个类只能有一个析构函数。无法继承或重载析构函数。无法调用析构函数。它们是被自动调
类的定义classclassname[(父类名)]:–成员函数及成员变量_init_构造函数:初始化对象_del_析构函数:销毁对象定义类的成员函数时,必须默认
析构函数的作用是当对象生命期结束后,收回对象占用的资源,析构函数的特点是:1、析构函数名是在类名前加以符号“~”。2、析构函数没有参数、返回类型和修饰符。3、一
本文实例讲述了Python面向对象程序设计构造函数和析构函数用法。分享给大家供大家参考,具体如下:构造函数和析构函数1、构造方法的使用很多类都倾向于将对象创建为
继承和动态内存分配假设基类使用了动态内存分配,而且定义了析构函数、复制构造函数和赋值函数,但是在派生类中没有使用动态内存分配,那么在派生类中不需要显示定义析构函