计算代码执行时间--带有多个参数的装饰器
示例代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import time def cal_time(fn): """计算程序运行时间的函数""" def inner(x, *args, **kwargs): start_time = time.time() print(args) # 元组解包,('lisa',) print(kwargs) # 字典解包,{'y':'hell'} ret = fn(x) # 调用func(x) end_time = time.time() print("程序一共运行了%s" % (end_time - start_time) + '秒') return ret # 返回inner函数的返回值 return inner # 返回内部函数引用 @cal_time # 相当于:cal_time(func) def func(n): """带有返回值的求阶乘的函数""" x = 1 for i in range(1, 10000): x *= i return x # 返回数字10000 # 相当于调用 func = cal_time(func) 调用的是装饰器中的inner函数 result = func(10, 'lisa', y='hello') # 传入多个参数 print(result)
运行结果: