Использование переменных в обработчике сигналов - требуется глобальный?
У меня есть обработчик сигнала для обработки прерывания Ctrl-C. Если в обработчике сигналов я хочу прочитать набор переменных в моем основном скрипте, есть ли альтернатива использованию "Глобальный" заявление при установке переменной?
Я нене против, но прочитайте этот пост (Вы используете "Глобальный" заявление в Python?) в котором кто-то заметил, что не должно быть никаких причин когда-либо использовать глобальные.
Какая альтернатива в этом случае?
Мой код выглядит так:
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()