Python,如果条件为真x的时间量

时间:2018-07-10 10:48:53

标签: python if-statement

我想创建一个条件,该条件仅在a为True的情况下执行超过3秒钟。我希望它像这样工作。

if a == True for more than 3 seconds:
   dosomething

3 个答案:

答案 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