我保留一个事务的缓存以在水印或对象最终化事件发生时刷新(持久存储)。由于每个对象上的__del__
为no longer guaranteed to be called,因此将类似函数(或__del__
本身)挂接到atexit.register
(在初始化期间)是否合适?Python:在程序终止之前通过终结器刷新缓冲区
如果我没有弄错,这个将导致该方法绑定的对象挂起,直到程序终止。这不可能是一个问题,但也许有一个更优雅的解决方案?
注:我知道使用__del__
是不理想的,因为it can cause uncatchable exceptions,但我想不出另一种方式做到这短短的级联finalize()
调用都通过我的程序一路的。 TIA!
您在布赖恩之前给出了解决方案,但他在一个更详细的解释中让它点击了我的大脑。对不起 - 我仍然赞成你的! – cdleary 2008-12-23 23:38:05