Python析构函数__del__定义原理解析

Flower ·
更新时间:2024-11-11
· 729 次阅读

析构函数__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中的垃圾回收(GC)机制如何快速理解python的垃圾回收机制详细分析Python垃圾回收机制Python小白垃圾回收机制入门Python垃圾回收机制三种实现方法python对象销毁实例(垃圾回收)python垃圾回收机制(GC)原理解析Python的垃圾回收机制详解python的内存管理和垃圾回收机制详解Python中垃圾回收和del语句详解



del 函数 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号