我保留一個事務的緩存以在水印或對象最終化事件發生時刷新(持久存儲)。由於每個對象上的__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