可以这样想:你要求一个类使用一个内部方法进行自毁,这有点像是试图吃掉自己的嘴。
如果在销毁实例时需要执行特定的操作,则仍然可以重写
__del__()
哪个会呢
有点
像个毁灭者。这里有一个愚蠢的例子:
class SelfDestruct:
def __init__(self):
print("Hi! I'm being instanciated!")
def __del__(self):
print("I'm being automatically destroyed. Goodbye!")
def do_stuff(self):
print("I'm doing some stuff...")
现在,尝试在本地作用域(例如函数)中实例化该类:
def make_a_suicidal_class():
my_suicidal_class = SelfDestruct()
for i in range(5):
my_suicidal_class.do_stuff()
return None
在这里,对象的寿命受函数的约束。这意味着一旦通话结束,它就会自动销毁。因此,输出应如下所示:
>>> make_suicidal_class()
"Hi! I'm being instanciated!"
"I'm doing some stuff..."
"I'm doing some stuff..."
"I'm doing some stuff..."
"I