常用装饰器:时间统计

#!/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)

  

 

posted @ 2021-01-27 19:20  Adamanter  阅读(73)  评论(0)    收藏  举报