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()

questionAnswers(5)

yourAnswerToTheQuestion