Использование переменных в обработчике сигналов - требуется глобальный?

У меня есть обработчик сигнала для обработки прерывания Ctrl-C. Если в обработчике сигналов я хочу прочитать набор переменных в моем основном скрипте, есть ли альтернатива использованию & quot; global & quot; заявление при установке переменной?

Я не возражаю против этого, но читаю этот пост (Используете ли вы «глобальный» заявление в 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()

Ответы на вопрос(5)

Ваш ответ на вопрос