#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
"""
import functools
import time
# unit 单位默认秒
from loguru import logger
def consume_time_statistics(unit=''):
def outer(f):
@functools.wraps(f)
def wrapper(*args, **kwargs):
t1 = time.time()
ret = f(*args, **kwargs)
t2 = time.time()
if unit == 'ms':
logger.debug("函数 %s() 耗时 %s" % (f.__name__, round(1000 * (t2 - t1), 2)))
else:
logger.debug("函数 %s() 耗时 %s" % (f.__name__, round(t2 - t1, 2)))
return ret
return wrapper
return outer
# @consume_time_statistics('ms')
@consume_time_statistics()
def factorial(n):
return functools.reduce(lambda x, y: x * y, range(1, n + 1))
if __name__ == '__main__':
factorial(10)