欢迎光临散文网 会员登陆 & 注册

使用Python统计函数执行时间的装饰器

2023-09-07 20:58 作者:littersho  | 我要投稿

装饰器的使用场景:

为函数新增功能,解决重复性的操作,使得代码简洁,更模块儿化

装饰器本质上是一个Python函数,

它可以在不改变原始函数的情况下,添加一些额外的功能,例如日志记录、缓存结果,以及计算函数的运行时间。

接收另一个函数作为参数,并返回一个新函数。

在Python中,可以使用@符号放置在要被装饰的函数前面,将一个装饰器应用到一个函数上。


以下是一个简单的计时装饰器的例子:

import time 

def calculate_time(func):    

   def wrapper(*args, **kwargs):        

      start = time.time()        

      result = func(*args, **kwargs)        

      end = time.time() 

      cost_time = end - start  

      print(“花费时间:{}秒”.format(cost_time)")         

      return result    

    return wrapper 

  • calculate_time()是一个装饰器函数,它接受一个函数作为输入参数,并且返回一个新的函数wrapper。

  • wrapper()可以接收任何数量和类型的输入参数,并在执行原始函数之前记录起始时间。然后执行原始函数,获取函数的结果;最后记录结束时间,并计算函数的运行时间。运行时间输出到控制台,然后返回原始函数的结果。

  • 装饰器最终会返回新的函数wrapper,因此它将替换原始函数。

  • 使用“@calculate_time”将装饰器应用于需要计算运行时间的函数。


@calculate_time 

def myfunc():    

   time.sleep(1)    

   print("Function executed") 


myfunc()

使用Python统计函数执行时间的装饰器的评论 (共 条)

分享到微博请遵守国家法律