del方法在不同的文本编辑器中有两个不同的输出
class test:
def __init__(self) :
print("init")
def __del__(self):
print("del")
a=test()
输出vs代码:
初始化del在jupyter中输出:
初始化
在终端中运行Python脚本时(与vscode中类似),在执行完最后一行后,脚本终止。当脚本终止时,会调用类test()
的destructor。在类中的__del__()
方法中定义了一个解构造器。
在Jupyter笔记本中,脚本不会终止,而是为您的下一个代码块准备(注意,这里的术语可能略有偏离)。未调用__del__()
方法。
它在Python语言参考中有明确的说明。数据模型/特殊方法名称/基本定制说明(强调我的):
对象del(自身)
在实例即将被销毁时调用
不能保证对解释器退出时仍然存在的对象调用del()方法。
这意味着不同的环境可能对__del__
的调用有不同的用途