Usando variáveis no manipulador de sinal - requer global?
Eu tenho um manipulador de sinal para lidar com a interrupção ctrl-c. Se no manipulador de sinal eu quero ler uma variável definida no meu script principal, existe uma alternativa para usar uma instrução "global" ao definir a variável?
Eu não me importo de fazer isso, mas leia este post (Você usa a instrução "global" no Python?) em que alguém comentou que não deveria haver razão para usar globalmente.
Qual é a alternativa neste caso?
Meu código é assim:
def signal_handler(signal, frame):
print "in sig handler - g_var=%s" % g_var
def main():
global g_var
g_var = "test"
time.sleep(120)
if __name__ == '__main__':
signal.signal(signal.SIGINT, signal_handler)
main()