我有一个信号处理程序来处理 ctrl-c 中断。如果在信号处理程序中我想读取在我的主脚本中设置的变量,在设置变量时是否可以使用“全局”语句?
我不介意这样做,但请阅读这篇文章(Do you use the "global" statement in Python?),其中有人评论说应该没有理由使用 global。
在这种情况下有什么替代方案?
我的代码如下所示:
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()