Python: 全局对象销毁
我有一个全局实例,我希望在Python解释器退出时能被销毁(也就是调用__del__
函数)。我是不是对Python解释器的期望太高了?
我测试这个的方法是,在__del__
函数里加一个打印语句,然后从命令行运行python.exe
,接着按下Ctrl/Break。这个时候,我本来期待能在命令行窗口看到打印的内容,但实际上并没有看到。
2 个回答
4
你可以为 signal.SIGBREAK
信号添加一个处理器。这样你就可以拦截 ctrl
+ break
的组合键了。具体内容可以参考 文档:
import signal, os
def handler(signum, frame):
print 'Someone is trying to exit!', signum
signal.signal(signal.SIGBREAK, handler)