Python3中__del__方法:
在定义的类中存在__del__方法时,当类被删除的时候,程序会自动执行__del__当中的代码(正好与__init__方法相反).
值得注意的地方是,要明白什么时候才是真正删除了类.
代码:
class Hero:
def __del__(self):
print("英雄已阵亡")
man1 = Hero()
man2 = man1
del man1
del man2
print("程序执行完毕")
执行结果:
英雄已阵亡
程序执行完毕
这里要注意,代码中指向类的有两个,分别是man1和man2,当删除man1时,Hero()类并没有真正的删除掉,当把man2也删除后,指向Hero类的指针为0,此时才真正删除了Hero类.可以对比一下两个代码运行的结果.
class Hero:
def __del__(self):
print("英雄已阵亡")
man1 = Hero()
man2 = man1
del man1
print("程序执行完毕")
执行结果:
程序执行完毕
英雄已阵亡
对比两段代码,更易懂