我有3个功能。 listener函数每10秒调用一次check_url函数。如果此函数检查成功,它将调用destroy函数。 destroy函数完成工作后,我想终止使用listener变量尝试执行的finish_control

def listener(url):
    while True:
        if finish_control == 1:
            break
        check_url(url)
        sleep(10)

def check_url(url):
    print ("Status: Listening")
    response = urllib.request.urlopen(url)
    data = response.read()
    text = data.decode('utf-8')
    if text == '1':
        print("--Action Started!--")
        destroy(argv.location)

def destroy(location):
    #some work
    print("---Action completed!---")
    finish_control = 1


但是listener中的while循环不会终止。我也尝试过

while (finish_control == 0):


还有同样的问题。 destroy完成工作后如何停止它?

最佳答案

确保finish_control是全局定义的,并在destroy函数中添加以下内容:

global finish_control

关于python - 虽然真实循环没有结束,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29354611/

10-12 18:51