我想创建一个条件,该条件仅在a为True的情况下执行超过3秒钟。我希望它像这样工作。
if a == True for more than 3 seconds:
dosomething
答案 0 :(得分:2)
如果要检查该值3秒钟没有变化。
import time
id_a_old = id(a)
time.sleep(3)
id_a_new = id(a)
if id_a_old == id_a_new: # assumes that a is initially true
dosomething
由于布尔类型是不可变的,因此如果更改,则对象ID也将更改。
如果要在3秒钟后检查是否已更改,请执行以下操作。如果任何线程在3秒钟内a
发生变化,它将捕获该变化。
import time
time.sleep(3)
if a:
dosomething
答案 1 :(得分:0)
简单的解决方案(基于Marlon Abeykoon的解决方案):
import time
startTime = time.time()
while a == True:
endTime = time.time()
#do other stuff
if (endTime - startTime > 3):
print("Longer than 3 seconds")
break
答案 2 :(得分:0)
cd