Używanie zmiennych w programie obsługi sygnału - wymaga globalnego?

Mam program obsługi sygnału do obsługi przerwania ctrl-c. Jeśli w programie obsługi sygnałów chcę odczytać zmienną ustawioną w moim skrypcie głównym, czy istnieje alternatywa dla użycia „globalnej” instrukcji podczas ustawiania zmiennej?

Nie mam nic przeciwko temu, ale przeczytaj ten post (Czy używasz instrukcji „global” w Pythonie?) w którym ktoś skomentował, że nie powinno być powodu, aby kiedykolwiek używać globalnego.

Jaka jest alternatywa w tym przypadku?

Mój kod wygląda tak:


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