我有一个需要很长时间才能完成的程序。我希望它能够捕获SIGINT
(ctrl-c) 并调用该self.save_work()
方法。
就目前而言, mysignal_hander()
不起作用,因为
self
程序到达的时间没有定义signal_handler()
。
我该如何设置它以便self.save_work
在 a 之后被调用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()