如何保证ctrl-c退出程序时调用__del__函数?

王璘钰*_*王璘钰 -2 python

在我的Python程序中,我创建了一个自定义对象。通过接收 CTRL-C 信号退出该程序。但是,__del__程序退出时不会调用该函数。当程序退出时,该程序创建的所有对象都应该被删除,但是为什么该__del__函数没有被调用呢?现在,为了进行一些清理,我决定进行atexit模块。还有更优雅的方法吗?实际上,我想用它RAII in C++来管理我的 python 对象,我可以这样做吗?

小智 6

使用atexit模块:

import atexit
atexit.register(your_function_name)
Run Code Online (Sandbox Code Playgroud)

或者,就您而言:

import atexit
atexit.register(__del__)
Run Code Online (Sandbox Code Playgroud)