1

在 python 3 中,你怎么能重复一个函数说 10 秒。在这种情况下,该函数将在特定时间内将树莓派上的输出高低调高。这需要在发生之前指定的一段时间内发生。

4

2 回答 2

0

Try:

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())

where f is the function you want to call. Keep in mind that this doesn't run for exactly sec seconds. It calls the function if sec seconds haven't passed. For example if your function takes, say 30 seconds, and you specify 31 seconds, your function will be called twice for a total of 60 seconds.

于 2013-02-20T07:46:42.127 回答
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()
于 2013-02-20T07:52:08.777 回答