0

目前我正在使用下面的代码来查找我手动使用开始时间和结束时间的任何例程/功能的经过时间

但是,我希望一个函数应该自动返回整个函数需要多长时间,就像我们运行查询时一样,它用来说明我想要运行任何函数的秒数和毫秒数,每个函数都应该返回我经过的时间时间。

这是我的代码,我对此绝对不满意,我想要高端专业的代码行,请帮助。谢谢。

def ElaspedTime(stime,etime):
    from datetime import timedelta
    timediff = timedelta(seconds=etime - stime)
    return timediff

def STime():
    return time.monotonic()

def ETime():
    return time.monotonic()

#start_time = time.monotonic()

##call functions here

#end_time = time.monotonic()

#print( ElaspedTime(start_time,end_time))
4

2 回答 2

0

编写如下装饰器(将 log.debug 替换为 print ...):

from functools import wraps
def with_stopwatch(f):
    @wraps(f)
    def wrapped(*args, **kw):
        tstart = time()
        result = f(*args, **kw)
        tend = time()
        log.debug('>>> func:%r took: %2.4f sec' % (f.__name__, tend - tstart))
        return result
    return wrapped

@with_stopwatch
def function()
    ...
于 2017-06-13T15:29:10.500 回答
0

你可以像这样创建一个包装函数:

def runWithTime(f,*args):
    from datetime import timedelta
    import time
    stime = time.time()
    r = f(*args)
    etime = time.time()
    timediff = timedelta(etime - stime)
    print timediff
    return r

def a(x,y):
    return x+y

r = runWithTime(a,1,2)
print r
于 2017-06-13T15:25:13.397 回答