我有一個需要很長時間才能完成的程序。我想要 它能夠捕捉到SIGINT
(ctrl-c)並且調用self.save_work()
方法。SIGINT後保存工作
既然這樣,我signal_hander()
不會因爲 self
不是由程序到達signal_handler()
時間定義的工作。
我該如何設置它,以便self.save_work
在SIGINT
之後被調用?
#!/usr/bin/env python
import signal
def signal_handler(signal, frame):
self.save_work() # Does not work
exit(1)
signal.signal(signal.SIGINT, signal_handler)
class Main(object):
def do_stuff(self):
...
def save_work(self):
...
def __init__(self):
self.do_stuff()
self.save_work()
if __name__=='__main__':
Main()
其一,你不能在一個函數中使用「self」。 – jldupont 2009-11-04 14:58:02