J'ai un programme qui prend beaucoup de temps à terminer. Je voudrais pour être en mesure d'attraper SIGINT
(ctrl-c) et appeler la méthode self.save_work()
.Enregistrement du travail après un SIGINT
En l'état actuel, mon signal_hander()
ne fonctionne pas depuis self
n'est pas défini au moment où le programme atteint signal_handler()
.
Comment puis-je le configurer afin que self.save_work
soit appelé après un 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()
D'une part, vous ne pouvez pas utiliser "self" dans une fonction. – jldupont