当前位置: Python基础教程 > 07-面向对象a > 阅读正文

python类的__del__

2021.6.20.   544 次   710字

python有自动回收机制, 当对象被销毁时, 会触发__del__方法

当一个对象不再使用时, 会被回收, 当然程序结束前内存也会被释放, 也会触发del

class Person:
    def __init__(self,name="默认名", age=0):
        self.name=name
        self.age=age
    def say(self):
        print("我的名字是:"+self.name+",我的年龄是:"+str(self.age))

    def __del__(self):
        print("我被销毁了")

xiaoming = Person("小明",18)
xiaoming.say()

print("*" * 30)

程序的结果如下, 程序终止触发了__del__:

我的名字是:小明,我的年龄是:18
******************************
我被销毁了

对于python对象, 可以手动删除, 也会触发__del__

class Person:
    def __init__(self,name="默认名", age=0):
        self.name=name
        self.age=age
    def say(self):
        print("我的名字是:"+self.name+",我的年龄是:"+str(self.age))

    def __del__(self):
        print("我被销毁了")

xiaoming = Person("小明",18)
xiaoming.say()

del xiaoming   #使用 del 关键字删除对象

print("*" * 30)

程序的结果如下, 仔细看***的位置的del之后:

我的名字是:小明,我的年龄是:18
我被销毁了
******************************

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群