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