2017-09-28 102 views
0

如何返回註釋的結果和正在執行的函數的結果? 下面的代碼只打印那裏的結果。 進口時間python註解返回結果

def timeit(method): 
    def timed(*args, **kw): 
     ts = time.time() 
     result = method(*args, **kw) 
     te = time.time() 

     # print('%r (%r, %r) %2.2f sec' % \ 
     #  (method.__name__, args, kw, te - ts)) 
     print(te - ts) 
     return result 

    return timed 


@timeit 
def f1(): 
    time.sleep(1) 
    return "abc" 


result = f1() 
print(type(result)) 

回答

1

您可以返回一個元組(time_elapsed, function_result)

import time 


def timeit(method): 
    def timed(*args, **kw): 
     ts = time.time() 
     result = method(*args, **kw) 
     te = time.time() 
     elapsed = te - ts 
     return elapsed, result 

    return timed 


@timeit 
def f1(): 
    time.sleep(1) 
    return "abc" 


result = f1() 
print(result) 
> (1.003918170928955, 'abc') 

elapsed, result = f1() 
print(elapsed) 
> 1.0018439292907715 
print(result) 
> abc