51、析构函数 __del__方法

小白量化 2025-12-12 11:12:33 45 举报

析构函数__del__方法也是一个特殊的方法,它是类的析构函数。它在对象被销毁时可能被Python的垃圾回收机制调用(如果确定对象不再被调用了,才调用__del__方法)。

# 示例1
class Person:
   def __del__(self):
       print("我是__del__方法~")
       
# 实例化对象
p1 = Person()   # 不是实例化的时候被调用,是程序被结束之前调用的!最后才调用!
print("哈哈哈哈哈哈哈1")
print("哈哈哈哈哈哈哈2")
print("哈哈哈哈哈哈哈3")

# 由于p1对象在输出这10行内容之后,就没有再被使用,并且程序很快就要结束,因此可能看到__del__方法被调用

当使用del关键字显式的删除对象时,Python的垃圾回收机制在后续某个时间点可能会识别到该对象不再被需要,从而调用其__del__方法。

# 示例2
class Person:
   def __del__(self):
       print("我是__del__方法~")
       
# 实例化对象
p1 = Person()

print("哈哈哈")
del p1   # 显示删除对象,p1对象不会被使用
print("嘻嘻嘻")
# 示例3
class Person:
   def __del__(self):
       print("我是__del__方法~")
       
# 实例化对象
p1 = Person()
p2 = p1

print("哈哈哈")
del p1   # P2还在用p1对象,则不会被调用!
print("嘻嘻嘻")

注意:在Python中,__del__方法作用相对有限,因为Python拥有一套高效的自动垃圾回收机制。意味着当Python文件执行完毕或程序被明确终止时,Python会自动回收并清理其占用的内存空间,有效防止了因内存泄露而可能导致的系统资源耗尽问题。

量化小白,从0开始学量化! 1

著作权归文章作者所有。 未经作者允许禁止转载!

最新回复 ( 0 )
发新帖
0