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