import time
import functools
def clock(func):
"""函数执行时间,参数,结果"""
@functools.wraps(func)
def inner(*args, **kwargs):
t0 = time.time()
result = func(*args, **kwargs)
time_use = time.time() - t0
func_name = func.__name__
parameter = []
if args:
parameter.append(','.join(repr(arg) for arg in args))
if kwargs:
kwargs_str = ",".join('%s=%r' % (k, v) for k, v in kwargs.items())
parameter.append(kwargs_str)
parameter = ','.join(parameter)
print('[%0.8fs] %s(%s) -> %r' % (time_use, func_name, parameter, result))
return result
return inner
@clock
def use(a, b, c=1):
time.sleep(1)
print(a, b, c)
@clock
def fab(n):
"""计算阶乘"""
return 1 if n < 2 else fab(n - 1) * n
use(4, '5&#
Python 装饰器实现函数计时器,记录运行的时间、传入的参数、调用的结果打印出来
最新推荐文章于 2022-09-17 09:47:20 发布