【Python每日作业】Day1: 写一个记录函数执行时间的装饰器

大家好,我是 bug,一个普通程序员。

程序员的快速成长,在于多练习,多输出,多分享,多链接。

怎奈执行力太差,错过了很多好的机会。

什么时候开始都不算晚,欢迎大家关注,见证一个普通程序员的成长之路。

这里先立个 Flag,参加 涛哥聊Python技术圈 知识星球的每日作业打卡,先坚持 7 天。

问题:

Day1
Q15: 写一个记录函数执行时间的装饰器。

解决:

完成今天的作业,对我来说,有两个难题:
其一:Python 的开发环境。
其二:身为 Python 初学者,不太理解什么是装饰器,需要研究下。

解决第一个问题,Python 开发环境。
百度关键词,windows + python 环境配置。
就能准确搜到很多文章,都蛮详细的。
找个生产日期比较新的,照着一步步配置轻松完成。

Python 用的 3.10 的版本,开发工具用的 PyCharm,没什么特殊配置,省事。

第二个问题,Python 装饰器。
同样先百度,有条件可以 Google。
搜到相关文章后,进行阅读学习。
学习了 python 函数的常见用法后,轻松将 demo 写完。

装饰器函数,就是定义一个装饰器函数,另一个函数用这个装饰器函数装饰。当这个函数执行时,也会执行对应装饰器函数中的功能。
通过 @装饰器函数名 的调用方式实现。

代码如下:

import time

def func_decorator_execute_and_execution_time_report(func):
    def wrap_the_func():
        before_func_time = time.time()
        func()
        after_func_time = time.time()
        execution_time = after_func_time - before_func_time
        print("func execution time: " + str(execution_time))

    return wrap_the_func


@func_decorator_execute_and_execution_time_report
def hello_bug():
    # 函数暂停 2 秒再执行
    time.sleep(2)
    print("hello bug")


hello_bug()
# 运行结果:
# hello bug
# func execution time: 2.004734992980957

总结:

好了,Day1 打卡结束,学到了 python 函数的常见用法,以及装饰器函数的定义和使用。

如果你也正在学习 Python ,欢迎和 bug 一起交流。
关注公众号 bug 玩编程,一起玩编程!

posted on 2021-10-20 14:09  bug玩编程  阅读(300)  评论(0编辑  收藏  举报