在python 3中你怎么能重复一个函数说10秒。在这种情况下,该功能将树莓pi上的输出高低转动特定的时间。这需要在发生此事件之前指定的时间内发生。
答案 0 :(得分:0)
尝试:
def run_wrapper(sec):
starttime = datetime.datetime.now()
endtime = None
while True:
f()
endtime = datetime.datetime.now()
if (endtime - starttime).total_seconds() >= sec:
break
print('Ran for %s seconds' % (endtime - starttime).total_seconds())
其中f
是您要调用的函数。请注意,这不适用于完全 sec
秒。如果sec
秒没有通过,它会调用该函数。例如,如果你的函数需要30秒,而你指定31秒,你的函数将被调用两次,总共60秒。
答案 1 :(得分:0)
如果您不需要在整个持续时间内连续重新调用该函数,那么您可以这样做:
import time
f()
time.sleep(sec)
g()
此处f
是导致某些结果被g
撤消的函数;由于g
在sec
秒过后才会被调用,f
的结果将在您需要的时间内保持有效。
编辑:如果f
需要花费大量时间并且您需要更精确,请尝试以下操作:
import time
before_f = time.clock()
f()
after_f = time.clock()
time.sleep(sec-(after_f-before_f))
g()