I’m trying to create a simple signal handler for my Python application but the value of exiting
does not change even when I use Ctrl-C
. If I put exiting
, out of the main
function the value changes. How can I change the value of exiting
when it is inside main()
? Currently, the program always prints
False
no matter if I press Ctrl-C
or not.
JavaScript
x
21
21
1
import signal
2
import time
3
4
5
def main():
6
exiting = False
7
8
def handler(f, b):
9
global exiting
10
exiting = True
11
return
12
13
signal.signal(signal.SIGINT, handler)
14
while True:
15
print(exiting)
16
time.sleep(1)
17
18
19
if __name__ == "__main__":
20
main()
21
Advertisement
Answer
global
should be included in the main
function too.
JavaScript
1
22
22
1
import signal
2
import time
3
4
5
def main():
6
global exiting
7
exiting = False
8
9
def handler(f, b):
10
global exiting
11
exiting = True
12
return
13
14
signal.signal(signal.SIGINT, handler)
15
while True:
16
print(exiting)
17
time.sleep(1)
18
19
20
if __name__ == "__main__":
21
main()
22