我正在编写一个可以在固定时间迎接用户的程序。如果用户在一段时间内没有回复任何内容,程序将发送另一条消息。
目前我使用包含两个内部函数的外部函数,因为我希望以后将外部函数导入另一个主文件。但是当我调用外部函数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()
任何人都可以提供帮助吗?
答案 0 :(得分:0)
是否进入此部分
if weekends_ans!=None:
return
如果确实如此,代码将返回,并且不会连接到下一部分。 (它将返回,然后从test()下面继续
附注:查看异步编程。使用sleep几乎总是不好的做法,例如链接到async: https://hackernoon.com/asynchronous-python-45df84b82434