繁体   English   中英

信号处理程序无法更改变量

[英]Signal handler is not able to change variable

我正在尝试为我的 Python 应用程序创建一个简单的信号处理程序,但即使我使用Ctrl-C exiting的值也不会改变。 如果我把exiting放在main function 之外,值会发生变化。 当它在main()内时,如何更改exiting的值? 目前,无论我是否按Ctrl-C ,程序总是打印False

import signal
import time


def main():
    exiting = False

    def handler(f, b):
        global exiting
        exiting = True
        return

    signal.signal(signal.SIGINT, handler)
    while True:
        print(exiting)
        time.sleep(1)


if __name__ == "__main__":
    main()

global也应该包含在main的 function 中。

import signal
import time


def main():
    global exiting
    exiting = False

    def handler(f, b):
        global exiting
        exiting = True
        return

    signal.signal(signal.SIGINT, handler)
    while True:
        print(exiting)
        time.sleep(1)


if __name__ == "__main__":
    main()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM