我想创建一个等待输入的函数,如果在2秒内没有输入任何内容,则跳过输入并继续执行函数的其余部分 .
我从另一个线程尝试了这个函数:
import time
from threading import Thread
answer = None
def check():
time.sleep(2)
if answer != None:
return "ayy"
print("Too slow")
return "No input"
Thread(target = check).start()
answer = input("Input something: ")
print(answer)
此代码要求输入,如果在2秒内未添加任何输入,则打印“太慢” . 然而它永远不会继续打印(回答),我认为它一直在等待用户输入 .
我想要求用户输入,如果它需要太长时间,它只需要输入=无,然后转到它下面的函数 . 我查看了涉及信号的超时方法,但这只适用于linux和im在windows上 .
1 回答
你的假设是对的 .
input()
调用正在等待用户提交任何在您的情况下从未发生过的输入 .跨平台解决方案是使用
select()
:那是一个肮脏的原型 . 我建议使用超时的异常或更直观的函数返回值 .