析构函数__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会自动回收并清理其占用的内存空间,有效防止了因内存泄露而可能导致的系统资源耗尽问题。
著作权归文章作者所有。 未经作者允许禁止转载!