zhuifeng66666 2021-12-27 16:56 采纳率: 50%
浏览 69
已结题

用Python,实现一个装饰器配置文件,计算给定函数的执行时间

问题遇到的现象和发生背景

实现一个装饰器配置文件,它计算给定函数的执行时间,打印执行时间并返回函数结果。
考虑使用时间模块和default_timer函数来计算函数执行时间。将装饰器保存到一个utils.py文件中。

问题相关代码,请勿粘贴截图
Example
@profile
def some_function ():
return sum ( range ( 1000 ) )
result = some_function () # return a value and print execution ti

实现一个上下文管理器计时器来计算代码块执行时间,并将其打印到屏幕上。将上下文管理器保存到一个utils.py文件中。

Example
with timer ():
print ( sum ( range ( 1000 ) ) )
# print execution time when calculation is over

我的解答思路和尝试过的方法
我想要达到的结果

写一下注释

  • 写回答

1条回答 默认 最新

  • 江小皮不皮 2021-12-27 17:09
    关注

    utils:

    
    import datetime
    
    
    def default_timer(func):
        def int_time(*args, **kwargs):
            start_time = datetime.datetime.now()  # 程序开始时间
            func()
            over_time = datetime.datetime.now()   # 程序结束时间
            total_time = (over_time-start_time).total_seconds()
            print('程序共计%s秒' % total_time)
        return int_time
    

    测试函数

    from utils import default_timer
    
    
    @default_timer
    def main():
        print('>>>>开始计算函数运行时间')
        for i in range(1, 100):# 可以是任意函数  , 这里故意模拟函数的运行时间
            for j in range(i):
                print(j)
    
    
    if __name__ == '__main__':
        main()
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 创建了问题 12月27日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料