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
我被销毁了
******************************