Python - 只有第一个内部函数被执行

时间:2017-12-04 09:28:04

标签: python function schedule

我正在编写一个可以在固定时间迎接用户的程序。如果用户在一段时间内没有回复任何内容,程序将发送另一条消息。

目前我使用包含两个内部函数的外部函数,因为我希望以后将外部函数导入另一个主文件。但是当我调用外部函数test()时,只执行了第一个内部函数weekendnds()。

这是我的代码。

import schedule
import time
from threading import Thread

def test():

    def weekends():
        weekends_ans = None
        def weekends_check():
            time.sleep(20)
            if weekends_ans!=None:
                return
            print('\nWhat about watching a movie?')
        Thread(target=weekends_check).start()
        weekends_ans=input('Whats your plan for weekends?')

    def monday():
        monday_ans = None
        def monday_check():
            time.sleep(20)
            if monday_ans!=None:
                return
            print('\nHave fun next week!')
        Thread(target=monday_check).start()
        monday_ans=input('Monday again.')

    schedule.every().friday.at('17:00').do(weekends)
    schedule.every().sunday.at('17:00').do(monday)
    while True:
        schedule.run_pending()
        time.sleep(1)

test()

任何人都可以提供帮助吗?

1 个答案:

答案 0 :(得分:0)

是否进入此部分

if weekends_ans!=None: return

如果确实如此,代码将返回,并且不会连接到下一部分。 (它将返回,然后从test()下面继续

附注:查看异步编程。使用sleep几乎总是不好的做法,例如链接到async: https://hackernoon.com/asynchronous-python-45df84b82434